From 0bf531def24264986fb4cbbdcd95616641c71e16 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 14 Sep 2012 19:19:21 +0530 Subject: [PATCH 001/172] From 7a9cf3ccb5cbb455a7f0471553f309f45cb96414 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 4 Jan 2013 18:32:42 +0100 Subject: [PATCH 002/172] From b2f7b7fcd3b6ee61cd63b0c6449e82cb87c1fa94 Mon Sep 17 00:00:00 2001 From: Sunanda Menon Date: Tue, 8 Jan 2013 07:28:41 +0100 Subject: [PATCH 003/172] Raise version number after cloning 5.5.30 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 3c7056de633..a489ca65d7f 100644 --- a/VERSION +++ b/VERSION @@ -1,4 +1,4 @@ MYSQL_VERSION_MAJOR=5 MYSQL_VERSION_MINOR=5 -MYSQL_VERSION_PATCH=30 +MYSQL_VERSION_PATCH=31 MYSQL_VERSION_EXTRA= From 7a89d68f01bda710e0195ce448ea2e2fb047ca15 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 8 Jan 2013 12:42:36 +0100 Subject: [PATCH 004/172] Raise version number after cloning 5.1.68 --- configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.in b/configure.in index e4618f58a91..8ed6afb1559 100644 --- a/configure.in +++ b/configure.in @@ -12,7 +12,7 @@ dnl dnl When changing the major version number please also check the switch dnl statement in mysqlbinlog::check_master_version(). You may also need dnl to update version.c in ndb. -AC_INIT([MySQL Server], [5.1.68], [], [mysql]) +AC_INIT([MySQL Server], [5.1.69], [], [mysql]) AC_CONFIG_SRCDIR([sql/mysqld.cc]) AC_CANONICAL_SYSTEM From df5444d47ca64f4024c959913974a2a06f75ab14 Mon Sep 17 00:00:00 2001 From: Sunny Bains Date: Thu, 10 Jan 2013 10:01:50 +1100 Subject: [PATCH 005/172] Bug#13997024 SEGV IN SYNC_ARRAY_CELL_PRINT PRINTING OUT LONG SEMAPHORE WAIT DATA Backport fix from mysql-5.6. --- storage/innobase/sync/sync0arr.c | 4 ++++ storage/innodb_plugin/sync/sync0arr.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/storage/innobase/sync/sync0arr.c b/storage/innobase/sync/sync0arr.c index 60a96fe4388..33b0c8d5304 100644 --- a/storage/innobase/sync/sync0arr.c +++ b/storage/innobase/sync/sync0arr.c @@ -936,6 +936,8 @@ sync_array_print_long_waits( return(FALSE); } + sync_array_enter(sync_primary_wait_array); + for (i = 0; i < sync_primary_wait_array->n_cells; i++) { double diff; @@ -970,6 +972,8 @@ sync_array_print_long_waits( } } + sync_array_exit(sync_primary_wait_array); + if (noticed) { fprintf(stderr, "InnoDB: ###### Starts InnoDB Monitor" diff --git a/storage/innodb_plugin/sync/sync0arr.c b/storage/innodb_plugin/sync/sync0arr.c index 90ea50b641b..a9100b7003f 100644 --- a/storage/innodb_plugin/sync/sync0arr.c +++ b/storage/innodb_plugin/sync/sync0arr.c @@ -932,6 +932,8 @@ sync_array_print_long_waits( return(FALSE); } + sync_array_enter(sync_primary_wait_array); + for (i = 0; i < sync_primary_wait_array->n_cells; i++) { double diff; @@ -966,6 +968,8 @@ sync_array_print_long_waits( } } + sync_array_exit(sync_primary_wait_array); + if (noticed) { fprintf(stderr, "InnoDB: ###### Starts InnoDB Monitor" From f112ae8ee19996fccf30e243f68ec21e79413478 Mon Sep 17 00:00:00 2001 From: prabakaran thirumalai Date: Thu, 10 Jan 2013 09:00:23 +0530 Subject: [PATCH 006/172] Bug#16064876 MAIN.KILL FAILS OCCASIONALLY ON SOL10 SPARC64 Analysis: On solaris, killing a connection which waits on debug sync (waits on condition variable) is neglected. Subsequent kill connection to that thread succeeds. Debug sync code is not included in release build hence it is not an customer issue. Also verified that except this case, other cases succeed in main.kill test script. So moving this test to experimental state on solaris platform only in mysql-5.5 branch. --- mysql-test/collections/default.experimental | 1 + 1 file changed, 1 insertion(+) diff --git a/mysql-test/collections/default.experimental b/mysql-test/collections/default.experimental index 56b8feb6739..dca07e1a388 100644 --- a/mysql-test/collections/default.experimental +++ b/mysql-test/collections/default.experimental @@ -6,6 +6,7 @@ binlog.binlog_multi_engine # joro : NDB tests marked as experiment funcs_1.charset_collation_1 # depends on compile-time decisions main.func_math @freebsd # Bug#11751977 2010-05-04 alik main.func_math fails on FreeBSD in PB2 +main.kill @solaris # Bug#16064876 2013-01-02 prthirum main.kill fails on sol10 sparc64 main.lock_multi_bug38499 # Bug#11755645 2009-09-19 alik main.lock_multi_bug38499 times out sporadically main.outfile_loaddata @solaris # Bug#11755168 2010-01-20 alik Test "outfile_loaddata" fails (reproducible) main.signal_demo3 @solaris # Bug#11753919 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun From 9a0f3d3d53e3ba51bb50547146d7f328d7ece399 Mon Sep 17 00:00:00 2001 From: Annamalai Gurusami Date: Thu, 10 Jan 2013 10:28:04 +0530 Subject: [PATCH 007/172] Bug #16004999 ASSERT STATE == TRX_STATE_NOT_STARTED, UNLOCK_ROW() Problem: During the index intersect access method, the SQL layer will access one row, that satisfies a set of conditions, using an index i1. And then it will try to access the same row, with other set of conditions using the next index i2. If the fetch from i2 fails (we are talking about an error situation here and not simply an unmatched row situation), then it will unlock the row accessed via i1. This will work in all situations except deadlock error. When a deadlock happens, InnoDB will rollback the transaction. InnoDB intimates the SQL layer about this through the THD::transaction_rollback_request member. But this is not currently used by the SQL layer. Solution: When an error happens, the SQL layer must check the THD::transaction_rollback_request member, before calling handler::unlock_row(). We have also added a debug assert in ha_innobase::unlock_row() checking that it must be called only when the transaction is in active state. rb#1773 approved by Marko and Sunny. --- sql/opt_range.cc | 10 ++++++++-- storage/innobase/handler/ha_innodb.cc | 2 ++ storage/innobase/lock/lock0lock.c | 5 +++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 96a27899db0..39f684e1928 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -8469,9 +8469,13 @@ int QUICK_ROR_INTERSECT_SELECT::get_next() do { + DBUG_EXECUTE_IF("innodb_quick_report_deadlock", + DBUG_SET("+d,innodb_report_deadlock");); if ((error= quick->get_next())) { - quick_with_last_rowid->file->unlock_row(); + /* On certain errors like deadlock, trx might be rolled back.*/ + if (!current_thd->transaction_rollback_request) + quick_with_last_rowid->file->unlock_row(); DBUG_RETURN(error); } quick->file->position(quick->record); @@ -8494,7 +8498,9 @@ int QUICK_ROR_INTERSECT_SELECT::get_next() quick->file->unlock_row(); /* row not in range; unlock */ if ((error= quick->get_next())) { - quick_with_last_rowid->file->unlock_row(); + /* On certain errors like deadlock, trx might be rolled back.*/ + if (!current_thd->transaction_rollback_request) + quick_with_last_rowid->file->unlock_row(); DBUG_RETURN(error); } } diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 570344ecce3..b549e19307f 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -5596,6 +5596,8 @@ ha_innobase::unlock_row(void) { DBUG_ENTER("ha_innobase::unlock_row"); + ut_ad(prebuilt->trx->conc_state == TRX_ACTIVE); + /* Consistent read does not take any locks, thus there is nothing to unlock. */ diff --git a/storage/innobase/lock/lock0lock.c b/storage/innobase/lock/lock0lock.c index a72be540c1b..a5ce43496af 100644 --- a/storage/innobase/lock/lock0lock.c +++ b/storage/innobase/lock/lock0lock.c @@ -1997,6 +1997,8 @@ lock_rec_lock_fast( || mode - (LOCK_MODE_MASK & mode) == 0 || mode - (LOCK_MODE_MASK & mode) == LOCK_REC_NOT_GAP); + DBUG_EXECUTE_IF("innodb_report_deadlock", return(LOCK_REC_FAIL);); + lock = lock_rec_get_first_on_page(block); trx = thr_get_trx(thr); @@ -2074,6 +2076,8 @@ lock_rec_lock_slow( trx = thr_get_trx(thr); + DBUG_EXECUTE_IF("innodb_report_deadlock", return(DB_DEADLOCK);); + lock = lock_rec_has_expl(mode, block, heap_no, trx); if (lock) { if (lock->type_mode & LOCK_CONV_BY_OTHER) { @@ -4124,6 +4128,7 @@ lock_rec_unlock( ut_ad(trx && rec); ut_ad(block->frame == page_align(rec)); + ut_ad(trx->conc_state == TRX_ACTIVE); heap_no = page_rec_get_heap_no(rec); From 5e399d1cd023345e51fb6dbcb0078074abe039b5 Mon Sep 17 00:00:00 2001 From: Praveenkumar Hulakund Date: Thu, 10 Jan 2013 14:34:27 +0530 Subject: [PATCH 008/172] Bug#11749556: DEBUG ASSERTION WHEN ACCESSING A VIEW AND AVAILABLE MEMORY IS TOO LOW Analysis: --------- In function "mysql_make_view", "table->view" is initialized after parsing(using File_parser::parse) the view definition. If "::parse" function fails then control is moved to label "err:". Here we have assert (table->view == thd->lex). This assert fails if "::parse" function fails, as table->view is not initialized yet. File_parser::parse fails if data being parsed is incorrect/ corrupted or when memory allocation fails. In this scenario its failing because of failure in memory allocation. Fix: --------- In case of failure in function "File_parser::parse", moving to label "err:" is incorrect. Modified code to move to label "end:". --- sql/sql_view.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/sql/sql_view.cc b/sql/sql_view.cc index 965aee65d04..41521395757 100644 --- a/sql/sql_view.cc +++ b/sql/sql_view.cc @@ -1137,9 +1137,10 @@ bool mysql_make_view(THD *thd, File_parser *parser, TABLE_LIST *table, TODO: when VIEWs will be stored in cache, table mem_root should be used here */ - if (parser->parse((uchar*)table, thd->mem_root, view_parameters, - required_view_parameters, &file_parser_dummy_hook)) - goto err; + if ((result= parser->parse((uchar*)table, thd->mem_root, + view_parameters, required_view_parameters, + &file_parser_dummy_hook))) + goto end; /* check old format view .frm @@ -1185,6 +1186,11 @@ bool mysql_make_view(THD *thd, File_parser *parser, TABLE_LIST *table, now Lex placed in statement memory */ table->view= lex= thd->lex= (LEX*) new(thd->mem_root) st_lex_local; + if (!table->view) + { + result= true; + goto end; + } { char old_db_buf[NAME_LEN+1]; From 8b41f491c82063382bc76d8a8c266b83b0ab8fe0 Mon Sep 17 00:00:00 2001 From: Chaithra Gopalareddy Date: Thu, 10 Jan 2013 16:17:13 +0530 Subject: [PATCH 009/172] Bug#11760726: LEFT JOIN OPTIMIZED INTO JOIN LEADS TO INCORRECT RESULTS This is a backport of fix for Bug#13068506. mysql-test/r/join_outer.result: Added test result for Bug#13068506 mysql-test/t/join_outer.test: Added test case for Bug#13068506 sql/item.h: Implement Item_outer_ref::not_null_tables() --- mysql-test/r/join_outer.result | 32 ++++++++++++++++++++++++++++++++ mysql-test/t/join_outer.test | 30 ++++++++++++++++++++++++++++++ sql/item.h | 2 ++ 3 files changed, 64 insertions(+) diff --git a/mysql-test/r/join_outer.result b/mysql-test/r/join_outer.result index d8a734a7158..f745e953331 100644 --- a/mysql-test/r/join_outer.result +++ b/mysql-test/r/join_outer.result @@ -1485,4 +1485,36 @@ EXECUTE prep_stmt; f 1 DROP TABLE t1; +# +# Bug#13068506 - QUERY WITH GROUP BY ON NON-AGGR COLUMN RETURNS +# WRONG RESULT +# +CREATE TABLE t1 (i1 int); +INSERT INTO t1 VALUES (100), (101); +CREATE TABLE t2 (i2 int, i3 int); +INSERT INTO t2 VALUES (20,1),(10,2); +CREATE TABLE t3 (i4 int(11)); +INSERT INTO t3 VALUES (1),(2); + +SELECT ( +SELECT MAX( t2.i2 ) +FROM t3 RIGHT JOIN t2 ON ( t2.i3 = 2 ) +WHERE t2.i3 <> t1.i1 +) AS field1 +FROM t1;; +field1 +20 +20 + +SELECT ( +SELECT MAX( t2.i2 ) +FROM t3 RIGHT JOIN t2 ON ( t2.i3 = 2 ) +WHERE t2.i3 <> t1.i1 +) AS field1 +FROM t1 GROUP BY field1;; +field1 +20 + +drop table t1,t2,t3; +# End of test for Bug#13068506 End of 5.1 tests diff --git a/mysql-test/t/join_outer.test b/mysql-test/t/join_outer.test index 1ba29fdd4cf..13811731dad 100644 --- a/mysql-test/t/join_outer.test +++ b/mysql-test/t/join_outer.test @@ -1067,5 +1067,35 @@ EXECUTE prep_stmt; DROP TABLE t1; +--echo # +--echo # Bug#13068506 - QUERY WITH GROUP BY ON NON-AGGR COLUMN RETURNS +--echo # WRONG RESULT +--echo # + +CREATE TABLE t1 (i1 int); +INSERT INTO t1 VALUES (100), (101); + +CREATE TABLE t2 (i2 int, i3 int); +INSERT INTO t2 VALUES (20,1),(10,2); + +CREATE TABLE t3 (i4 int(11)); +INSERT INTO t3 VALUES (1),(2); + +let $query= SELECT ( + SELECT MAX( t2.i2 ) + FROM t3 RIGHT JOIN t2 ON ( t2.i3 = 2 ) + WHERE t2.i3 <> t1.i1 +) AS field1 +FROM t1; + +--echo +--eval $query; +--echo +--eval $query GROUP BY field1; + +--echo +drop table t1,t2,t3; + +--echo # End of test for Bug#13068506 --echo End of 5.1 tests diff --git a/sql/item.h b/sql/item.h index 1934e005776..3a46280ed31 100644 --- a/sql/item.h +++ b/sql/item.h @@ -2448,6 +2448,8 @@ public: { return (*ref)->const_item() ? 0 : OUTER_REF_TABLE_BIT; } + table_map not_null_tables() const { return 0; } + virtual Ref_Type ref_type() { return OUTER_REF; } }; From 3fa76fd05de0a72719d08cba1af4130059bb7bc7 Mon Sep 17 00:00:00 2001 From: Venkata Sidagam Date: Thu, 10 Jan 2013 16:37:20 +0530 Subject: [PATCH 010/172] Bug #14553380 MYSQL C API LIBRARY EXITS AT NET_CLEAR AT NET_SERV.CC:223 Problem description: When client loses the connection to the MySQL server or if the server gets shutdown after mysql_stmt_prepare() then the next mysql_stmt_prepare() will return an error(as expected) but consecutive call mysql_stmt_execute(), will crash the client program. The expected behavior would be, it should through an error. Analysis: The mysql_stmt_prepare() interns calls the function end_server() and net->vio and net->buff are freed and set to NULL. Then the next call mysql_stmt_execute() will interns call net_clear() where we are "net->vio" with out validating it. Fix: we are validating the net->vio, before calling net_clear(). --- libmysql/libmysql.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index ed1a85f86b4..a6bb617132f 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -2107,7 +2107,14 @@ int cli_stmt_execute(MYSQL_STMT *stmt) DBUG_RETURN(1); } - net_clear(net, 1); /* Sets net->write_pos */ + if (net->vio) + net_clear(net, 1); /* Sets net->write_pos */ + else + { + set_stmt_errmsg(stmt, net); + DBUG_RETURN(1); + } + /* Reserve place for null-marker bytes */ null_count= (stmt->param_count+7) /8; if (my_realloc_str(net, null_count + 1)) From 21bdf213807e467e7638d0504e900070bb1689f5 Mon Sep 17 00:00:00 2001 From: Aditya A Date: Fri, 11 Jan 2013 16:27:37 +0530 Subject: [PATCH 011/172] Bug#15843818 PARTITIONING BY RANGE WITH TO_DAYS ALWAYS INCLUDES FIRST PARTITION WHEN PRUNING PROBLEM ------- TO_DAYS()/TO_SECONDS() can return NULL for invalid dates which was stored in the first partition ,therefore the first partition was always included for the scan when range was specified. FIX --- The fix is a small optimization which we have included ,which will prune the scanning of NULL/first partition if the dates specified in the range are valid and in the same year and month . TO_SECONDS() function is not supported in 5.1 so removed it from the fix and test scripts for mysql-5.1 version. --- sql/sql_partition.cc | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index 0b103dcbda9..41f2b00a256 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -6793,6 +6793,9 @@ int get_part_iter_for_interval_via_mapping(partition_info *part_info, get_endpoint_func UNINIT_VAR(get_endpoint); bool can_match_multiple_values; /* is not '=' */ uint field_len= field->pack_length_in_rec(); + MYSQL_TIME start_date; + bool check_zero_dates= false; + bool zero_in_start_date= true; part_iter->ret_null_part= part_iter->ret_null_part_orig= FALSE; if (part_info->part_type == RANGE_PARTITION) @@ -6844,6 +6847,7 @@ int get_part_iter_for_interval_via_mapping(partition_info *part_info, { /* col is NOT NULL, but F(col) can return NULL, add NULL partition */ part_iter->ret_null_part= part_iter->ret_null_part_orig= TRUE; + check_zero_dates= true; } } @@ -6887,6 +6891,19 @@ int get_part_iter_for_interval_via_mapping(partition_info *part_info, return 1; } part_iter->part_nums.cur= part_iter->part_nums.start; + if (check_zero_dates && !part_info->part_expr->null_value) + { + if (!(flags & NO_MAX_RANGE) && + (field->type() == MYSQL_TYPE_DATE || + field->type() == MYSQL_TYPE_DATETIME)) + { + /* Monotonic, but return NULL for dates with zeros in month/day. */ + zero_in_start_date= field->get_date(&start_date, 0); + DBUG_PRINT("info", ("zero start %u %04d-%02d-%02d", + zero_in_start_date, start_date.year, + start_date.month, start_date.day)); + } + } if (part_iter->part_nums.start == max_endpoint_val) return 0; /* No partitions */ } @@ -6900,6 +6917,27 @@ int get_part_iter_for_interval_via_mapping(partition_info *part_info, store_key_image_to_rec(field, max_value, field_len); bool include_endp= !test(flags & NEAR_MAX); part_iter->part_nums.end= get_endpoint(part_info, 0, include_endp); + if (check_zero_dates && + !zero_in_start_date && + !part_info->part_expr->null_value) + { + MYSQL_TIME end_date; + bool zero_in_end_date= field->get_date(&end_date, 0); + /* + This is an optimization for TO_DAYS() to avoid scanning the NULL + partition for ranges that cannot include a date with 0 as + month/day. + */ + DBUG_PRINT("info", ("zero end %u %04d-%02d-%02d", + zero_in_end_date, + end_date.year, end_date.month, end_date.day)); + DBUG_ASSERT(!memcmp(((Item_func*) part_info->part_expr)->func_name(), + "to_days", 7)); + if (!zero_in_end_date && + start_date.month == end_date.month && + start_date.year == end_date.year) + part_iter->ret_null_part= part_iter->ret_null_part_orig= false; + } if (part_iter->part_nums.start >= part_iter->part_nums.end && !part_iter->ret_null_part) return 0; /* No partitions */ From c4afaa42423d664477ca5df6cb45f49860381bfc Mon Sep 17 00:00:00 2001 From: Nisha Gopalakrishnan Date: Sat, 12 Jan 2013 11:13:37 +0530 Subject: [PATCH 012/172] BUG#11757250: REPLACE(...) INSIDE A STORED PROCEDURE. Analysis: -------- REPLACE operation provides incorrect output when user variable is supplied as an argument and there are multiple rows on which the operation is performed. Consider the example below: SET @var='(( 00000000 ++ 00000000 ))'; SELECT REPLACE(@var, '00000000', table_name) AS a FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='mysql'; Invalid output: +---------------------------------------+ | REPLACE(@var, '00000000', TABLE_NAME) | +---------------------------------------+ | (( columns_priv ++ columns_priv )) | | (( columns_priv ++ columns_priv )) | ...... ...... | (( columns_priv ++ columns_priv )) | | (( columns_priv ++ columns_priv )) | | (( columns_priv ++ columns_priv )) | +---------------------------------------+ The user argument supplied as the string to REPLACE operation is overwritten after the first iteration to '(( columns_priv ++ columns_priv ))'. The overwritten string after the first iteration is used for the subsequent REPLACE iteration. Since the pattern string is not found, it returns invalid output as mentioned above. Fix: --- If the Alloced_length is zero, realloc() and create a copy of the string which is then used for the REPLACE operation for every iteration. --- client/sql_string.cc | 2 +- sql/sql_string.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client/sql_string.cc b/client/sql_string.cc index 4a0f2df927b..010da7eb517 100644 --- a/client/sql_string.cc +++ b/client/sql_string.cc @@ -761,7 +761,7 @@ String *copy_if_not_alloced(String *to,String *from,uint32 from_length) { if (from->Alloced_length >= from_length) return from; - if (from->alloced || !to || from == to) + if ((from->alloced && (from->Alloced_length != 0)) || !to || from == to) { (void) from->realloc(from_length); return from; diff --git a/sql/sql_string.cc b/sql/sql_string.cc index 4dbc2d77206..10bd3511cd2 100644 --- a/sql/sql_string.cc +++ b/sql/sql_string.cc @@ -796,7 +796,7 @@ String *copy_if_not_alloced(String *to,String *from,uint32 from_length) { if (from->Alloced_length >= from_length) return from; - if (from->alloced || !to || from == to) + if ((from->alloced && (from->Alloced_length != 0)) || !to || from == to) { (void) from->realloc(from_length); return from; From 54c47527e25f7ebe8c0d995b4a9a1bea901047a9 Mon Sep 17 00:00:00 2001 From: "Krunal Bauskar krunal.bauskar@oracle.com" Date: Mon, 14 Jan 2013 10:49:51 +0530 Subject: [PATCH 013/172] - BUG#1608883: KILLING A QUERY INSIDE INNODB CAUSES IT TO EVENTUALLY CRASH WITH AN ASSERTION Recently we added check to handle kill query signal for long operating queries. While the query interruption is reported it must to ensure cursor is restore to proper state for HANDLER interface to work correctly. Normal select query will not face this problem, as on recieving interrupt, select query is aborted and new select query result in re-initialization (including cursor). rb://1836. Approved by Marko. --- storage/innobase/row/row0sel.c | 4 ++++ storage/innodb_plugin/ChangeLog | 5 +++++ storage/innodb_plugin/row/row0sel.c | 6 +++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/storage/innobase/row/row0sel.c b/storage/innobase/row/row0sel.c index cf3b36fbac2..2137facf638 100644 --- a/storage/innobase/row/row0sel.c +++ b/storage/innobase/row/row0sel.c @@ -33,6 +33,8 @@ Created 12/19/1997 Heikki Tuuri #include "read0read.h" #include "buf0lru.h" #include "ha_prototypes.h" +#include "m_string.h" /* for my_sys.h */ +#include "my_sys.h" /* DEBUG_SYNC_C */ /* Maximum number of rows to prefetch; MySQL interface has another parameter */ #define SEL_MAX_N_PREFETCH 16 @@ -3758,7 +3760,9 @@ wait_table_again: } rec_loop: + DEBUG_SYNC_C("row_search_rec_loop"); if (trx_is_interrupted(trx)) { + btr_pcur_store_position(pcur, &mtr); err = DB_INTERRUPTED; goto normal_return; } diff --git a/storage/innodb_plugin/ChangeLog b/storage/innodb_plugin/ChangeLog index e9c86a85d29..6a389f618af 100644 --- a/storage/innodb_plugin/ChangeLog +++ b/storage/innodb_plugin/ChangeLog @@ -1,3 +1,8 @@ +2013-01-11 The InnoDB Team + * row/row0sel.c: + Fix Bug#16088883 KILLING A QUERY INSIDE INNODB CAUSES IT TO + EVENTUALLY CRASH WITH AN ASSERTION + 2012-12-18 The InnoDB Team * include/univ.i: diff --git a/storage/innodb_plugin/row/row0sel.c b/storage/innodb_plugin/row/row0sel.c index d825d799a3c..d2e83450860 100644 --- a/storage/innodb_plugin/row/row0sel.c +++ b/storage/innodb_plugin/row/row0sel.c @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1997, 2011, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1997, 2013, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, Google Inc. Portions of this file contain modifications contributed and copyrighted by @@ -57,6 +57,8 @@ Created 12/19/1997 Heikki Tuuri #include "read0read.h" #include "buf0lru.h" #include "ha_prototypes.h" +#include "m_string.h" /* for my_sys.h */ +#include "my_sys.h" /* DEBUG_SYNC_C */ /* Maximum number of rows to prefetch; MySQL interface has another parameter */ #define SEL_MAX_N_PREFETCH 16 @@ -3908,7 +3910,9 @@ wait_table_again: } rec_loop: + DEBUG_SYNC_C("row_search_rec_loop"); if (trx_is_interrupted(trx)) { + btr_pcur_store_position(pcur, &mtr); err = DB_INTERRUPTED; goto normal_return; } From 99645e5be59145bcab2fe36aefde4224e6e69961 Mon Sep 17 00:00:00 2001 From: Neeraj Bisht Date: Mon, 14 Jan 2013 14:59:48 +0530 Subject: [PATCH 014/172] BUG#14303860 - EXECUTING A SELECT QUERY WITH TOO MANY WILDCARDS CAUSES A SEGFAULT Back port from 5.6 and trunk --- include/m_ctype.h | 2 ++ regex/my_regex.h | 2 +- regex/regcomp.c | 2 +- sql/mysqld.cc | 22 ++++++++++++++----- strings/ctype-bin.c | 27 +++++++++++++++++------ strings/ctype-mb.c | 50 ++++++++++++++++++++++++++++++++---------- strings/ctype-simple.c | 26 +++++++++++++++++----- strings/ctype-uca.c | 26 ++++++++++++++++------ strings/ctype-utf8.c | 33 ++++++++++++++++++++-------- strings/ctype.c | 2 ++ 10 files changed, 145 insertions(+), 47 deletions(-) diff --git a/include/m_ctype.h b/include/m_ctype.h index d58081ec19e..b36fdbe6d68 100644 --- a/include/m_ctype.h +++ b/include/m_ctype.h @@ -132,6 +132,8 @@ enum my_lex_states struct charset_info_st; +extern int (*my_string_stack_guard)(int); + /* See strings/CHARSET_INFO.txt for information about this structure */ typedef struct my_collation_handler_st { diff --git a/regex/my_regex.h b/regex/my_regex.h index 30896e29b91..1f96b8c461e 100644 --- a/regex/my_regex.h +++ b/regex/my_regex.h @@ -28,7 +28,7 @@ typedef struct { /* === regcomp.c === */ -typedef int (*my_regex_stack_check_t)(); +typedef int (*my_regex_stack_check_t)(int); extern int my_regcomp(my_regex_t *, const char *, int, CHARSET_INFO *charset); #define REG_BASIC 0000 #define REG_EXTENDED 0001 diff --git a/regex/regcomp.c b/regex/regcomp.c index e163a9ba7f4..c0fb93917a4 100644 --- a/regex/regcomp.c +++ b/regex/regcomp.c @@ -227,7 +227,7 @@ int stop; /* character this ERE should end at */ while (MORE() && (c = PEEK()) != '|' && c != stop) { if (my_regex_enough_mem_in_stack && - my_regex_enough_mem_in_stack()) + my_regex_enough_mem_in_stack(0)) { SETERROR(REG_ESPACE); return; diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 3b43217dd2f..b7da50606dd 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -2898,14 +2898,25 @@ sizeof(load_default_groups)/sizeof(load_default_groups[0]); #ifndef EMBEDDED_LIBRARY -static -int -check_enough_stack_size() +/** + This function is used to check for stack overrun for pathological + cases of regular expressions and 'like' expressions. + The call to current_thd is quite expensive, so we try to avoid it + for the normal cases. + The size of each stack frame for the wildcmp() routines is ~128 bytes, + so checking *every* recursive call is not necessary. + */ +extern "C" int +check_enough_stack_size(int recurse_level) { uchar stack_top; + if (recurse_level % 16 != 0) + return 0; - return check_stack_overrun(current_thd, STACK_MIN_SIZE, - &stack_top); + THD *my_thd= current_thd; + if (my_thd != NULL) + return check_stack_overrun(my_thd, STACK_MIN_SIZE * 2, &stack_top); + return 0; } #endif @@ -3293,6 +3304,7 @@ static int init_common_variables(const char *conf_file_name, int argc, #ifdef USE_REGEX #ifndef EMBEDDED_LIBRARY my_regex_init(&my_charset_latin1, check_enough_stack_size); + my_string_stack_guard= check_enough_stack_size; #else my_regex_init(&my_charset_latin1, NULL); #endif diff --git a/strings/ctype-bin.c b/strings/ctype-bin.c index 424549de9b2..f2d2d4a950f 100644 --- a/strings/ctype-bin.c +++ b/strings/ctype-bin.c @@ -323,13 +323,16 @@ void my_hash_sort_bin(CHARSET_INFO *cs __attribute__((unused)), #define INC_PTR(cs,A,B) (A)++ -int my_wildcmp_bin(CHARSET_INFO *cs, - const char *str,const char *str_end, - const char *wildstr,const char *wildend, - int escape, int w_one, int w_many) +static +int my_wildcmp_bin_impl(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, int recurse_level) { int result= -1; /* Not found, using wildcards */ - + + if (my_string_stack_guard && my_string_stack_guard(recurse_level)) + return 1; while (wildstr != wildend) { while (*wildstr != w_many && *wildstr != w_one) @@ -388,8 +391,8 @@ int my_wildcmp_bin(CHARSET_INFO *cs, if (str++ == str_end) return(-1); { - int tmp=my_wildcmp_bin(cs,str,str_end,wildstr,wildend,escape,w_one, - w_many); + int tmp=my_wildcmp_bin_impl(cs,str,str_end,wildstr,wildend,escape,w_one, + w_many, recurse_level + 1); if (tmp <= 0) return(tmp); } @@ -400,6 +403,16 @@ int my_wildcmp_bin(CHARSET_INFO *cs, return(str != str_end ? 1 : 0); } +int my_wildcmp_bin(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_bin_impl(cs, str, str_end, + wildstr, wildend, + escape, w_one, w_many, 1); +} + static size_t my_strnxfrm_bin(CHARSET_INFO *cs __attribute__((unused)), uchar *dest, size_t dstlen, diff --git a/strings/ctype-mb.c b/strings/ctype-mb.c index 76dae6762af..92d7b5f48c8 100644 --- a/strings/ctype-mb.c +++ b/strings/ctype-mb.c @@ -148,13 +148,16 @@ int my_strcasecmp_mb(CHARSET_INFO * cs,const char *s, const char *t) #define likeconv(s,A) (uchar) (s)->sort_order[(uchar) (A)] -int my_wildcmp_mb(CHARSET_INFO *cs, - const char *str,const char *str_end, - const char *wildstr,const char *wildend, - int escape, int w_one, int w_many) +static +int my_wildcmp_mb_impl(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, int recurse_level) { int result= -1; /* Not found, using wildcards */ + if (my_string_stack_guard && my_string_stack_guard(recurse_level)) + return 1; while (wildstr != wildend) { while (*wildstr != w_many && *wildstr != w_one) @@ -243,8 +246,8 @@ int my_wildcmp_mb(CHARSET_INFO *cs, INC_PTR(cs,str, str_end); } { - int tmp=my_wildcmp_mb(cs,str,str_end,wildstr,wildend,escape,w_one, - w_many); + int tmp=my_wildcmp_mb_impl(cs,str,str_end,wildstr,wildend,escape,w_one, + w_many, recurse_level + 1); if (tmp <= 0) return (tmp); } @@ -255,6 +258,16 @@ int my_wildcmp_mb(CHARSET_INFO *cs, return (str != str_end ? 1 : 0); } +int my_wildcmp_mb(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_mb_impl(cs, str, str_end, + wildstr, wildend, + escape, w_one, w_many, 1); +} + size_t my_numchars_mb(CHARSET_INFO *cs __attribute__((unused)), const char *pos, const char *end) @@ -697,13 +710,15 @@ fill_max_and_min: } -static int my_wildcmp_mb_bin(CHARSET_INFO *cs, - const char *str,const char *str_end, - const char *wildstr,const char *wildend, - int escape, int w_one, int w_many) +static int my_wildcmp_mb_bin_impl(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, int recurse_level) { int result= -1; /* Not found, using wildcards */ + if (my_string_stack_guard && my_string_stack_guard(recurse_level)) + return 1; while (wildstr != wildend) { while (*wildstr != w_many && *wildstr != w_one) @@ -790,7 +805,9 @@ static int my_wildcmp_mb_bin(CHARSET_INFO *cs, INC_PTR(cs,str, str_end); } { - int tmp=my_wildcmp_mb_bin(cs,str,str_end,wildstr,wildend,escape,w_one,w_many); + int tmp=my_wildcmp_mb_bin_impl(cs,str,str_end, + wildstr,wildend,escape, + w_one,w_many, recurse_level+1); if (tmp <= 0) return (tmp); } @@ -801,6 +818,17 @@ static int my_wildcmp_mb_bin(CHARSET_INFO *cs, return (str != str_end ? 1 : 0); } +int +my_wildcmp_mb_bin(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_mb_bin_impl(cs, str, str_end, + wildstr, wildend, + escape, w_one, w_many, 1); +} + /* Data was produced from EastAsianWidth.txt diff --git a/strings/ctype-simple.c b/strings/ctype-simple.c index 2193e155f1f..082868600b2 100644 --- a/strings/ctype-simple.c +++ b/strings/ctype-simple.c @@ -952,13 +952,16 @@ cnv: #define INC_PTR(cs,A,B) (A)++ -int my_wildcmp_8bit(CHARSET_INFO *cs, - const char *str,const char *str_end, - const char *wildstr,const char *wildend, - int escape, int w_one, int w_many) +static +int my_wildcmp_8bit_impl(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, int recurse_level) { int result= -1; /* Not found, using wildcards */ + if (my_string_stack_guard && my_string_stack_guard(recurse_level)) + return 1; while (wildstr != wildend) { while (*wildstr != w_many && *wildstr != w_one) @@ -1018,8 +1021,9 @@ int my_wildcmp_8bit(CHARSET_INFO *cs, str++; if (str++ == str_end) return(-1); { - int tmp=my_wildcmp_8bit(cs,str,str_end,wildstr,wildend,escape,w_one, - w_many); + int tmp=my_wildcmp_8bit_impl(cs,str,str_end, + wildstr,wildend,escape,w_one, + w_many, recurse_level+1); if (tmp <= 0) return(tmp); } @@ -1030,6 +1034,16 @@ int my_wildcmp_8bit(CHARSET_INFO *cs, return(str != str_end ? 1 : 0); } +int my_wildcmp_8bit(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_8bit_impl(cs, str, str_end, + wildstr, wildend, + escape, w_one, w_many, 1); +} + /* ** Calculate min_str and max_str that ranges a LIKE string. diff --git a/strings/ctype-uca.c b/strings/ctype-uca.c index ff97a750c8a..26a3bac7964 100644 --- a/strings/ctype-uca.c +++ b/strings/ctype-uca.c @@ -7328,10 +7328,10 @@ static int my_uca_charcmp(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2) */ static -int my_wildcmp_uca(CHARSET_INFO *cs, - const char *str,const char *str_end, - const char *wildstr,const char *wildend, - int escape, int w_one, int w_many) +int my_wildcmp_uca_impl(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, int recurse_level) { int result= -1; /* Not found, using wildcards */ my_wc_t s_wc, w_wc; @@ -7339,7 +7339,9 @@ int my_wildcmp_uca(CHARSET_INFO *cs, int (*mb_wc)(struct charset_info_st *, my_wc_t *, const uchar *, const uchar *); mb_wc= cs->cset->mb_wc; - + + if (my_string_stack_guard && my_string_stack_guard(recurse_level)) + return 1; while (wildstr != wildend) { while (1) @@ -7446,8 +7448,8 @@ int my_wildcmp_uca(CHARSET_INFO *cs, if (str == str_end) return -1; - result= my_wildcmp_uca(cs, str, str_end, wildstr, wildend, - escape, w_one, w_many); + result= my_wildcmp_uca_impl(cs, str, str_end, wildstr, wildend, + escape, w_one, w_many, recurse_level+1); if (result <= 0) return result; @@ -7459,6 +7461,16 @@ int my_wildcmp_uca(CHARSET_INFO *cs, return (str != str_end ? 1 : 0); } +int my_wildcmp_uca(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many) +{ + return my_wildcmp_uca_impl(cs, str, str_end, + wildstr, wildend, + escape, w_one, w_many, 1); +} + /* Collation language is implemented according to diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c index a0e69feedab..004a09866aa 100644 --- a/strings/ctype-utf8.c +++ b/strings/ctype-utf8.c @@ -1889,11 +1889,12 @@ MY_UNICASE_INFO *my_unicase_turkish[256]= ** 1 if matched with wildcard */ -int my_wildcmp_unicode(CHARSET_INFO *cs, - const char *str,const char *str_end, - const char *wildstr,const char *wildend, - int escape, int w_one, int w_many, - MY_UNICASE_INFO **weights) +static +int my_wildcmp_unicode_impl(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, + MY_UNICASE_INFO **weights, int recurse_level) { int result= -1; /* Not found, using wildcards */ my_wc_t s_wc, w_wc; @@ -1901,7 +1902,9 @@ int my_wildcmp_unicode(CHARSET_INFO *cs, int (*mb_wc)(struct charset_info_st *, my_wc_t *, const uchar *, const uchar *); mb_wc= cs->cset->mb_wc; - + + if (my_string_stack_guard && my_string_stack_guard(recurse_level)) + return 1; while (wildstr != wildend) { while (1) @@ -2027,9 +2030,9 @@ int my_wildcmp_unicode(CHARSET_INFO *cs, return -1; str+= scan; - result= my_wildcmp_unicode(cs, str, str_end, wildstr, wildend, - escape, w_one, w_many, - weights); + result= my_wildcmp_unicode_impl(cs, str, str_end, wildstr, wildend, + escape, w_one, w_many, + weights, recurse_level+1); if (result <= 0) return result; } @@ -2038,6 +2041,18 @@ int my_wildcmp_unicode(CHARSET_INFO *cs, return (str != str_end ? 1 : 0); } +int +my_wildcmp_unicode(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many, + MY_UNICASE_INFO **weights) +{ + return my_wildcmp_unicode_impl(cs, str, str_end, + wildstr, wildend, + escape, w_one, w_many, weights, 1); +} + #endif diff --git a/strings/ctype.c b/strings/ctype.c index 8786eb3e889..ecb827cc778 100644 --- a/strings/ctype.c +++ b/strings/ctype.c @@ -41,6 +41,8 @@ */ +int (*my_string_stack_guard)(int)= NULL; + static char *mstr(char *str,const char *src,size_t l1,size_t l2) { l1= l1 Date: Mon, 14 Jan 2013 10:58:17 +0100 Subject: [PATCH 015/172] Fix for Bug#14636211 WRONG RESULT (EXTRA ROW) ON A FROM SUBQUERY WITH A VARIABLE AND ORDER BY Bug#16035412 MYSQL SERVER 5.5.29 WRONG SORTING USING COMPLEX INDEX This is a fix for a regression introduced by Bug#12667154: Bug#12667154 attempted to fix a performance problem with subqueries that did filesort. For doing filesort, the optimizer creates a quick select object to use when building the sort index. This quick select object was deleted after the first call to create_sort_index(). Thus, for queries where the subquery was executed multiple times, the quick object was only used for the first execution. For all later executions of the subquery, filesort used a complete table scan for building the sort index. The fix for Bug#12667154 tried to fix this by not deleting the quick object after the first execution of create_sort_index() so that it would be re-used for building the sort index by the following executions of the subquery. This regression introduced in Bug#12667154 is that due to not deleting the quick select object after building the sort index, the quick object could in some cases be used also during the second phase of the execution of the subquery instead of using the created sort index. This caused wrong results to be returned. The fix for this issue is to delete the reference to the select object after it has been used in create_sort_index(). In this way the select and quick objects will not be available when doing the second phase of the execution of the select operation. To ensure that the select object can be re-used for the following executions of the subquery we make a copy of the select pointer. This is used for restoring the select object after the select operation is completed. mysql-test/suite/innodb/r/innodb_mysql.result: Changed explain output: The explain now contains "Using where" since we have restored the select pointer after doing the filesort operation. sql/sql_select.cc: Change create_sort_index() so that it always sets the pointer to the select object to NULL. This is done in order to avoid that the select->quick object can be used when execution the main part of the select operation. sql/sql_select.h: New member in JOIN_TAB: saved_select. Used by create_sort_index to make a backup copy of the select pointer. --- mysql-test/suite/innodb/r/innodb_mysql.result | 6 +-- sql/sql_select.cc | 46 +++++++++++++++---- sql/sql_select.h | 16 ++++++- 3 files changed, 54 insertions(+), 14 deletions(-) diff --git a/mysql-test/suite/innodb/r/innodb_mysql.result b/mysql-test/suite/innodb/r/innodb_mysql.result index 96ff02e2585..f7bffe2fc54 100644 --- a/mysql-test/suite/innodb/r/innodb_mysql.result +++ b/mysql-test/suite/innodb/r/innodb_mysql.result @@ -1738,7 +1738,7 @@ SELECT 1 FROM (SELECT COUNT(DISTINCT c1) FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY system NULL NULL NULL NULL 1 -2 DERIVED t1 ALL c3,c2 c3 5 5 Using filesort +2 DERIVED t1 ALL c3,c2 c3 5 5 Using where; Using filesort DROP TABLE t1; CREATE TABLE t1 (c1 REAL, c2 REAL, c3 REAL, KEY (c3), KEY (c2, c3)) ENGINE=InnoDB; @@ -1752,7 +1752,7 @@ SELECT 1 FROM (SELECT COUNT(DISTINCT c1) FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY system NULL NULL NULL NULL 1 -2 DERIVED t1 ALL c3,c2 c3 9 5 Using filesort +2 DERIVED t1 ALL c3,c2 c3 9 5 Using where; Using filesort DROP TABLE t1; CREATE TABLE t1 (c1 DECIMAL(12,2), c2 DECIMAL(12,2), c3 DECIMAL(12,2), KEY (c3), KEY (c2, c3)) @@ -1767,7 +1767,7 @@ SELECT 1 FROM (SELECT COUNT(DISTINCT c1) FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY system NULL NULL NULL NULL 1 -2 DERIVED t1 ALL c3,c2 c3 7 5 Using filesort +2 DERIVED t1 ALL c3,c2 c3 7 5 Using where; Using filesort DROP TABLE t1; End of 5.1 tests # diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 6908d313ee8..181fa6ece0a 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1829,6 +1829,8 @@ JOIN::exec() { List *columns_list= &fields_list; int tmp_error; + bool sort_index_created= false; + DBUG_ENTER("JOIN::exec"); thd_proc_info(thd, "executing"); @@ -2123,6 +2125,7 @@ JOIN::exec() { DBUG_VOID_RETURN; } + sort_index_created= true; sortorder= curr_join->sortorder; } @@ -2350,6 +2353,7 @@ JOIN::exec() HA_POS_ERROR : unit->select_limit_cnt), curr_join->group_list ? TRUE : FALSE)) DBUG_VOID_RETURN; + sort_index_created= true; sortorder= curr_join->sortorder; if (curr_join->const_tables != curr_join->tables && !curr_join->join_tab[curr_join->const_tables].table->sort.io_cache) @@ -2381,6 +2385,16 @@ JOIN::exec() error= do_select(curr_join, curr_fields_list, NULL, procedure); thd->limit_found_rows= curr_join->send_records; + if (sort_index_created && curr_join->tables != curr_join->const_tables ) + { + // Restore the original "select" used by create_sort_index(): + JOIN_TAB *const tab= curr_join->join_tab + curr_join->const_tables; + if (tab->saved_select) + { + tab->select= tab->saved_select; + tab->saved_select= NULL; + } + } /* Accumulate the counts from all join iterations of all join parts. */ thd->examined_row_count+= curr_join->examined_rows; DBUG_PRINT("counts", ("thd->examined_row_count: %lu", @@ -14134,7 +14148,7 @@ create_sort_index(THD *thd, JOIN *join, ORDER *order, tab= join->join_tab + join->const_tables; table= tab->table; select= tab->select; - + tab->saved_select= NULL; /* If we have a select->quick object that is created outside of create_sort_index() and this is part of a subquery that @@ -14233,16 +14247,28 @@ create_sort_index(THD *thd, JOIN *join, ORDER *order, if (!keep_quick) { select->cleanup(); - /* - The select object should now be ready for the next use. If it - is re-used then there exists a backup copy of this join tab - which has the pointer to it. The join tab will be restored in - JOIN::reset(). So here we just delete the pointer to it. - */ - tab->select= NULL; - // If we deleted the quick select object we need to clear quick_keys + + // If we deleted the quick object we need to clear quick_keys table->quick_keys.clear_all(); } + else + { + // Need to close the index scan in order to re-use the handler + tab->select->quick->range_end(); + } + + /* + The select object is now ready for the next use. To avoid that + the select object is used when reading the records in sorted + order we set the pointer to it to NULL. The select pointer will + be restored from the saved_select pointer when this select + operation is completed (@see JOIN::exec). This ensures that it + will be re-used when filesort is used by subqueries that are + executed multiple times. + */ + tab->saved_select= tab->select; + tab->select= NULL; + // Restore the output resultset table->sort.io_cache= tablesort_result_cache; } diff --git a/sql/sql_select.h b/sql/sql_select.h index c4f5dcba115..6732eb354d6 100644 --- a/sql/sql_select.h +++ b/sql/sql_select.h @@ -1,7 +1,7 @@ #ifndef SQL_SELECT_INCLUDED #define SQL_SELECT_INCLUDED -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -160,6 +160,20 @@ typedef struct st_join_table { TABLE *table; KEYUSE *keyuse; /**< pointer to first used key */ SQL_SELECT *select; + /** + When doing filesort, the select object is used for building the + sort index. After the sort index is built, the pointer to the + select object is set to NULL to avoid that it is used when reading + the result records (@see create_sort_index()). For subqueries that + do filesort and that are executed multiple times, the pointer to + the select object must be restored before the next execution both + to ensure that the select object is used and to be able to cleanup + the select object after the final execution of the subquery. In + order to be able to restore the pointer to the select object, it + is saved in saved_select in create_sort_index() and restored in + JOIN::exec() after the main select is done. + */ + SQL_SELECT *saved_select; COND *select_cond; QUICK_SELECT_I *quick; Item **on_expr_ref; /**< pointer to the associated on expression */ From 5cf1a8c2956c0bfce150a99661c9f9b09996e085 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 15 Jan 2013 12:26:49 +0530 Subject: [PATCH 016/172] From 65af83f642374c9d9476a125af30f723f7684e2e Mon Sep 17 00:00:00 2001 From: Neeraj Bisht Date: Tue, 15 Jan 2013 14:24:35 +0530 Subject: [PATCH 017/172] Bug#11758009 - UNION EXECUTION ORDER WRONG ? Problem:- In case of blob data field, UNION ALL doesn't give correct result. Analysis:- In MyISAM table, when we dont want to check for the distinct for particular key, we set the key_map to zero. While writing record in MyISAM table, we check the distinct with the help of keys, by checking whether that key is active in key_map and then writing the record. In case of blob field, we are checking for distinct by unique constraint, where we are not checking whether that unique key is active or not in key_map. Solution:- Before checking for distinct, check whether any key is active in key_map. storage/myisam/mi_write.c: check whether key_map is active before checking distinct. --- storage/myisam/mi_write.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/storage/myisam/mi_write.c b/storage/myisam/mi_write.c index 81262c229ce..1bcf1b28ecf 100644 --- a/storage/myisam/mi_write.c +++ b/storage/myisam/mi_write.c @@ -90,12 +90,15 @@ int mi_write(MI_INFO *info, uchar *record) goto err2; /* Calculate and check all unique constraints */ - for (i=0 ; i < share->state.header.uniques ; i++) + if (mi_is_any_key_active(share->state.key_map)) { - if (mi_check_unique(info,share->uniqueinfo+i,record, - mi_unique_hash(share->uniqueinfo+i,record), - HA_OFFSET_ERROR)) - goto err2; + for (i= 0 ; i < share->state.header.uniques ; i++) + { + if (mi_check_unique(info, share->uniqueinfo + i, record, + mi_unique_hash(share->uniqueinfo + i, record), + HA_OFFSET_ERROR)) + goto err2; + } } /* Write all keys to indextree */ From d01b5c392ceed32f4d9a34eec13be4fdd78c1ef6 Mon Sep 17 00:00:00 2001 From: Nisha Gopalakrishnan Date: Tue, 15 Jan 2013 15:30:26 +0530 Subject: [PATCH 018/172] Bug#11757464:SERVER CRASH IN RECURSIVE CALL WHEN OOM Analysis: --------- When the server is out of memory, an error is raised to indicate the same. Handling the error requires more memory to be allocated which fails, hence the error handling loops in a recursion and causes the server to crash. Fix: --- a) Prevents pushing the 'out of memory' error condition to the diagnostic area as it requires memory allocation. GET DIAGNOSTICS, SHOW WARNINGS and SHOW ERRORS statements will not show information about this error. However the 'out of memory' error is returned to the client. b) It sets the ME_FATALERROR flag when 'out of memory' errors are reported (for places where the flag is not already set). This flag prevents activation of SP error handlers which also require memory allocation and therefore are likely to fail. --- mysys/mf_keycache.c | 3 ++- mysys/my_lockmem.c | 2 +- mysys/my_malloc.c | 12 +++++++++--- mysys/my_once.c | 2 +- sql/handler.cc | 3 ++- sql/item_sum.cc | 4 ++++ sql/sql_binlog.cc | 2 +- sql/sql_class.cc | 16 ++++++++++------ sql/sql_partition.cc | 3 ++- sql/sql_prepare.cc | 7 ++++--- sql/sql_select.cc | 2 +- storage/myisam/myisampack.c | 3 ++- 12 files changed, 39 insertions(+), 20 deletions(-) diff --git a/mysys/mf_keycache.c b/mysys/mf_keycache.c index 7dfbf22d4b7..5829ab819f7 100644 --- a/mysys/mf_keycache.c +++ b/mysys/mf_keycache.c @@ -444,7 +444,8 @@ int init_key_cache(KEY_CACHE *keycache, uint key_cache_block_size, if (blocks < 8) { my_errno= ENOMEM; - my_error(EE_OUTOFMEMORY, MYF(0), blocks * keycache->key_cache_block_size); + my_error(EE_OUTOFMEMORY, MYF(ME_FATALERROR), + blocks * keycache->key_cache_block_size); goto err; } blocks= blocks / 4*3; diff --git a/mysys/my_lockmem.c b/mysys/my_lockmem.c index 8f06192d9f8..2e036936c70 100644 --- a/mysys/my_lockmem.c +++ b/mysys/my_lockmem.c @@ -43,7 +43,7 @@ uchar *my_malloc_lock(uint size,myf MyFlags) if (!(ptr=memalign(pagesize,size))) { if (MyFlags & (MY_FAE+MY_WME)) - my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG),size); + my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG+ME_FATALERROR), size); DBUG_RETURN(0); } success = mlock((uchar*) ptr,size); diff --git a/mysys/my_malloc.c b/mysys/my_malloc.c index fc2dc98c3c5..93eb547888f 100644 --- a/mysys/my_malloc.c +++ b/mysys/my_malloc.c @@ -41,6 +41,11 @@ void *my_malloc(size_t size, myf my_flags) free(point); point= NULL; }); + DBUG_EXECUTE_IF("simulate_persistent_out_of_memory", + { + free(point); + point= NULL; + }); if (point == NULL) { @@ -48,7 +53,8 @@ void *my_malloc(size_t size, myf my_flags) if (my_flags & MY_FAE) error_handler_hook=fatal_error_handler_hook; if (my_flags & (MY_FAE+MY_WME)) - my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG+ME_NOREFRESH),size); + my_error(EE_OUTOFMEMORY, MYF(ME_BELL + ME_WAITTANG + + ME_NOREFRESH + ME_FATALERROR),size); DBUG_EXECUTE_IF("simulate_out_of_memory", DBUG_SET("-d,simulate_out_of_memory");); if (my_flags & MY_FAE) @@ -90,7 +96,7 @@ void *my_realloc(void *oldpoint, size_t size, myf my_flags) DBUG_RETURN(oldpoint); my_errno=errno; if (my_flags & MY_FAE+MY_WME) - my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG),size); + my_error(EE_OUTOFMEMORY, MYF(ME_BELL + ME_WAITTANG + ME_FATALERROR),size); } else { @@ -106,7 +112,7 @@ void *my_realloc(void *oldpoint, size_t size, myf my_flags) DBUG_RETURN(oldpoint); my_errno=errno; if (my_flags & (MY_FAE+MY_WME)) - my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG), size); + my_error(EE_OUTOFMEMORY, MYF(ME_BELL + ME_WAITTANG + ME_FATALERROR), size); } #endif DBUG_PRINT("exit",("ptr: %p", point)); diff --git a/mysys/my_once.c b/mysys/my_once.c index 7df9b0a1981..b9232db9b2e 100644 --- a/mysys/my_once.c +++ b/mysys/my_once.c @@ -59,7 +59,7 @@ void* my_once_alloc(size_t Size, myf MyFlags) { my_errno=errno; if (MyFlags & (MY_FAE+MY_WME)) - my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG),get_size); + my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG+ME_FATALERROR), get_size); return((uchar*) 0); } DBUG_PRINT("test",("my_once_malloc %lu byte malloced", (ulong) get_size)); diff --git a/sql/handler.cc b/sql/handler.cc index f4eb89912e9..6d022630508 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -356,7 +356,8 @@ handler *get_ha_partition(partition_info *part_info) } else { - my_error(ER_OUTOFMEMORY, MYF(0), static_cast(sizeof(ha_partition))); + my_error(ER_OUTOFMEMORY, MYF(ME_FATALERROR), + static_cast(sizeof(ha_partition))); } DBUG_RETURN(((handler*) partition)); } diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 75aec7918fa..81d151ffba0 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -3211,8 +3211,12 @@ bool Item_func_group_concat::add() TREE_ELEMENT *el= 0; // Only for safety if (row_eligible && tree) { + DBUG_EXECUTE_IF("trigger_OOM_in_gconcat_add", + DBUG_SET("+d,simulate_persistent_out_of_memory");); el= tree_insert(tree, table->record[0] + table->s->null_bytes, 0, tree->custom_arg); + DBUG_EXECUTE_IF("trigger_OOM_in_gconcat_add", + DBUG_SET("-d,simulate_persistent_out_of_memory");); /* check if there was enough memory to insert the row */ if (!el) return 1; diff --git a/sql/sql_binlog.cc b/sql/sql_binlog.cc index 8e7ee4f01c7..e32bafc73e4 100644 --- a/sql/sql_binlog.cc +++ b/sql/sql_binlog.cc @@ -107,7 +107,7 @@ void mysql_client_binlog_statement(THD* thd) rli->relay_log.description_event_for_exec && buf)) { - my_error(ER_OUTOFMEMORY, MYF(0), 1); /* needed 1 bytes */ + my_error(ER_OUTOFMEMORY, MYF(ME_FATALERROR), 1); /* needed 1 bytes */ goto end; } diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 6e47dcb5795..556e7d66447 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -1136,10 +1136,14 @@ MYSQL_ERROR* THD::raise_condition(uint sql_errno, query_cache_abort(&query_cache_tls); - /* When simulating OOM, skip writing to error log to avoid mtr errors */ - DBUG_EXECUTE_IF("simulate_out_of_memory", DBUG_RETURN(NULL);); - - cond= warning_info->push_warning(this, sql_errno, sqlstate, level, msg); + /* + Avoid pushing a condition for out of memory errors as this will require + memory allocation and therefore might fail. + */ + if (sql_errno != EE_OUTOFMEMORY && sql_errno != ER_OUTOFMEMORY) + { + cond= warning_info->push_warning(this, sql_errno, sqlstate, level, msg); + } DBUG_RETURN(cond); } @@ -1938,7 +1942,7 @@ CHANGED_TABLE_LIST* THD::changed_table_dup(const char *key, long key_length) key_length + 1); if (!new_table) { - my_error(EE_OUTOFMEMORY, MYF(ME_BELL), + my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_FATALERROR), ALIGN_SIZE(sizeof(TABLE_LIST)) + key_length + 1); killed= KILL_CONNECTION; return 0; @@ -2493,7 +2497,7 @@ bool select_export::send_data(List &items) set_if_smaller(estimated_bytes, UINT_MAX32); if (cvt_str.realloc((uint32) estimated_bytes)) { - my_error(ER_OUTOFMEMORY, MYF(0), (uint32) estimated_bytes); + my_error(ER_OUTOFMEMORY, MYF(ME_FATALERROR), (uint32) estimated_bytes); goto err; } diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index 066262c3919..8154f4cc404 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -7044,7 +7044,8 @@ void set_key_field_ptr(KEY *key_info, const uchar *new_buf, void mem_alloc_error(size_t size) { - my_error(ER_OUTOFMEMORY, MYF(0), static_cast(size)); + my_error(ER_OUTOFMEMORY, MYF(ME_FATALERROR), + static_cast(size)); } #ifdef WITH_PARTITION_STORAGE_ENGINE diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 2122a2badf9..f3deafc6035 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -1475,7 +1475,8 @@ static int mysql_test_select(Prepared_statement *stmt, if (!lex->result && !(lex->result= new (stmt->mem_root) select_send)) { - my_error(ER_OUTOFMEMORY, MYF(0), static_cast(sizeof(select_send))); + my_error(ER_OUTOFMEMORY, MYF(ME_FATALERROR), + static_cast(sizeof(select_send))); goto error; } @@ -1842,7 +1843,7 @@ static bool mysql_test_multidelete(Prepared_statement *stmt, stmt->thd->lex->current_select= &stmt->thd->lex->select_lex; if (add_item_to_list(stmt->thd, new Item_null())) { - my_error(ER_OUTOFMEMORY, MYF(0), 0); + my_error(ER_OUTOFMEMORY, MYF(ME_FATALERROR), 0); goto error; } @@ -3755,7 +3756,7 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor) alloc_query(thd, (char*) expanded_query->ptr(), expanded_query->length())) { - my_error(ER_OUTOFMEMORY, 0, expanded_query->length()); + my_error(ER_OUTOFMEMORY, MYF(ME_FATALERROR), expanded_query->length()); goto error; } /* diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 181fa6ece0a..7ffba371b53 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -14417,7 +14417,7 @@ static int remove_dup_with_compare(THD *thd, TABLE *table, Field **first_field, } if (copy_blobs(first_field)) { - my_message(ER_OUTOFMEMORY, ER(ER_OUTOFMEMORY), MYF(0)); + my_message(ER_OUTOFMEMORY, ER(ER_OUTOFMEMORY), MYF(ME_FATALERROR)); error=0; goto err; } diff --git a/storage/myisam/myisampack.c b/storage/myisam/myisampack.c index f9f31fefcb6..97f95487d01 100644 --- a/storage/myisam/myisampack.c +++ b/storage/myisam/myisampack.c @@ -2151,7 +2151,8 @@ static my_off_t write_huff_tree(HUFF_TREE *huff_tree, uint trees) */ if (!(packed_tree=(uint*) my_alloca(sizeof(uint)*length*2))) { - my_error(EE_OUTOFMEMORY,MYF(ME_BELL),sizeof(uint)*length*2); + my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_FATALERROR), + sizeof(uint)*length*2); return 0; } From cbb4732f713bde30ebf25e5d684bb93220d1ec19 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 16 Jan 2013 11:30:34 +0530 Subject: [PATCH 019/172] From 3930dbf75c9b1adfc066ac1accc7d217a8a30ca1 Mon Sep 17 00:00:00 2001 From: Neeraj Bisht Date: Wed, 16 Jan 2013 15:03:42 +0530 Subject: [PATCH 020/172] Bug#11751794 MYSQL GIVES THE WRONG RESULT WITH SOME SPECIAL USAGE Consider the following query: SELECT f_1,..,f_m, AGGREGATE_FN(C) FROM t1 WHERE ... GROUP BY ... Loose index scan ("Using index for group-by") can be used for this query if there is an index 'i' covering all fields in the select list, and the GROUP BY clause makes up a prefix f1,...,fn of 'i'. Furthermore, according to rule NGA2 of get_best_group_min_max(), the WHERE clause must contain a conjunction of equality predicates for all fields fn+1,...,fm. The problem in this bug was that a query with WHERE clause that broke NGA2 was not detected and therefore used loose index scan. This lead to wrong result. The query had an index covering (c1,c2) and had: "WHERE (c1 = 1 AND c2 = 'a') OR (c1 = 2 AND c2 = 'b') GROUP BY c1" or "WHERE (c1 = 1 ) OR (c1 = 2 AND c2 = 'b') GROUP BY c1" This WHERE clause cannot be transformed to a conjunction of equality predicates. The solution is to introduce another rule, NGA3, that complements NGA2. NGA3 says that if a gap field (field between those listed in GROUP BY and C in the index) has a predicate, then there can only be one range in the query. This requirement is more strict than it has to be in theory. BUG 15947433 will deal with that. sql/opt_range.cc: check for the repetition of non group field. --- sql/opt_range.cc | 98 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 81 insertions(+), 17 deletions(-) diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 6a539198d12..4e67727462c 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -9219,13 +9219,15 @@ cost_group_min_max(TABLE* table, KEY *index_info, uint used_key_parts, NGA1.If in the index I there is a gap between the last GROUP attribute G_k, and the MIN/MAX attribute C, then NGA must consist of exactly the index attributes that constitute the gap. As a result there is a - permutation of NGA that coincides with the gap in the index - . + permutation of NGA, BA=, that coincides with the gap + in the index. NGA2.If BA <> {}, then the WHERE clause must contain a conjunction EQ of equality conditions for all NG_i of the form (NG_i = const) or (const = NG_i), such that each NG_i is referenced in exactly one conjunct. Informally, the predicates provide constants to fill the gap in the index. + NGA3.If BA <> {}, there can only be one range. TODO: This is a code + limitation and is not strictly needed. See BUG#15947433 WA1. There are no other attributes in the WHERE clause except the ones referenced in predicates RNG, PA, PC, EQ defined above. Therefore WA is subset of (GA union NGA union C) for GA,NGA,C that pass the @@ -9841,6 +9843,72 @@ check_group_min_max_predicates(COND *cond, Item_field *min_max_arg_item, } +/* + Get SEL_ARG tree, if any, for the keypart covering non grouping + attribute (NGA) field 'nga_field'. + + This function enforces the NGA3 test: If 'keypart_tree' contains a + condition for 'nga_field', there can only be one range. In the + opposite case, this function returns with error and 'cur_range' + should not be used. + + Note that the NGA1 and NGA2 requirements, like whether or not the + range predicate for 'nga_field' is equality, is not tested by this + function. + + @param[in] nga_field The NGA field we want the SEL_ARG tree for + @param[in] keypart_tree Root node of the SEL_ARG* tree for the index + @param[out] cur_range The SEL_ARG tree, if any, for the keypart + covering field 'keypart_field' + @retval true 'keypart_tree' contained a predicate for 'nga_field' but + multiple ranges exists. 'cur_range' should not be used. + @retval false otherwise +*/ + +static bool +get_sel_arg_for_keypart(Field *nga_field, + SEL_ARG *keypart_tree, + SEL_ARG **cur_range) +{ + if(keypart_tree->field->eq(nga_field)) + { + /* + Enforce NGA3: If a condition for nga_field has been found, only + a single range is allowed. + */ + if (keypart_tree->prev || keypart_tree->next) + return true; // There are multiple ranges + + *cur_range= keypart_tree; + return false; + } + + SEL_ARG *found_tree= NULL; + SEL_ARG *first_kp= keypart_tree->first(); + + for (SEL_ARG *cur_kp= first_kp; cur_kp && !found_tree; + cur_kp= cur_kp->next) + { + if (cur_kp->next_key_part) + { + if (get_sel_arg_for_keypart(nga_field, + cur_kp->next_key_part, + &found_tree)) + return true; + + } + /* + Enforce NGA3: If a condition for nga_field has been found,only + a single range is allowed. + */ + if (found_tree && first_kp->next) + return true; // There are multiple ranges + } + *cur_range= found_tree; + return false; +} + + /* Extract a sequence of constants from a conjunction of equality predicates. @@ -9855,12 +9923,13 @@ check_group_min_max_predicates(COND *cond, Item_field *min_max_arg_item, key_infix [out] Infix of constants to be used for index lookup key_infix_len [out] Lenghth of the infix first_non_infix_part [out] The first keypart after the infix (if any) - + DESCRIPTION - Test conditions (NGA1, NGA2) from get_best_group_min_max(). Namely, - for each keypart field NGF_i not in GROUP-BY, check that there is a - constant equality predicate among conds with the form (NGF_i = const_ci) or - (const_ci = NGF_i). + Test conditions (NGA1, NGA2, NGA3) from get_best_group_min_max(). Namely, + for each keypart field NG_i not in GROUP-BY, check that there is exactly one + constant equality predicate among conds with the form (NG_i = const_ci) or + (const_ci = NG_i).. In addition, there can only be one range when there is + such a gap. Thus all the NGF_i attributes must fill the 'gap' between the last group-by attribute and the MIN/MAX attribute in the index (if present). If these conditions hold, copy each constant from its corresponding predicate into @@ -9889,16 +9958,14 @@ get_constant_key_infix(KEY *index_info, SEL_ARG *index_range_tree, uchar *key_ptr= key_infix; for (cur_part= first_non_group_part; cur_part != end_part; cur_part++) { + cur_range= NULL; /* Find the range tree for the current keypart. We assume that - index_range_tree points to the leftmost keypart in the index. + index_range_tree points to the first keypart in the index. */ - for (cur_range= index_range_tree; cur_range; - cur_range= cur_range->next_key_part) - { - if (cur_range->field->eq(cur_part->field)) - break; - } + if(get_sel_arg_for_keypart(cur_part->field, index_range_tree, &cur_range)) + return false; + if (!cur_range) { if (min_max_arg_part) @@ -9910,9 +9977,6 @@ get_constant_key_infix(KEY *index_info, SEL_ARG *index_range_tree, } } - /* Check that the current range tree is a single point interval. */ - if (cur_range->prev || cur_range->next) - return FALSE; /* This is not the only range predicate for the field. */ if ((cur_range->min_flag & NO_MIN_RANGE) || (cur_range->max_flag & NO_MAX_RANGE) || (cur_range->min_flag & NEAR_MIN) || (cur_range->max_flag & NEAR_MAX)) From 01208b5b0f3d175408c01afc1e06b07019ca7c2f Mon Sep 17 00:00:00 2001 From: Anirudh Mangipudi Date: Wed, 16 Jan 2013 18:26:27 +0530 Subject: [PATCH 021/172] BUG#14117025: UNABLE TO RESTORE DUMP Problem: When a view, with a specific character set and collation, is created on another view with a different character set and collation the dump restoration results in an illegal mix of collations error. SOLUTION: To avoid this confusion of collations, the create table datatype being used is hardcoded as "tinyint NOT NULL". This will not matter as the table created will be dropped at runtime and specifically tinyint is used to avoid hitting the row size conflicts. --- client/mysqldump.c | 13 +++++++--- mysql-test/r/mysqldump.result | 46 +++++++++++++++++------------------ 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/client/mysqldump.c b/client/mysqldump.c index 316c0fd174c..68d445f9a5b 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -2635,14 +2635,19 @@ static uint get_table_structure(char *table, char *db, char *table_type, row= mysql_fetch_row(result); - fprintf(sql_file, " %s %s", quote_name(row[0], name_buff, 0), - row[1]); + /* + The actual column type doesn't matter anyway, since the table will + be dropped at run time. + We do tinyint to avoid hitting the row size limit. + */ + fprintf(sql_file, " %s tinyint NOT NULL", + quote_name(row[0], name_buff, 0)); while((row= mysql_fetch_row(result))) { /* col name, col type */ - fprintf(sql_file, ",\n %s %s", - quote_name(row[0], name_buff, 0), row[1]); + fprintf(sql_file, ",\n %s tinyint NOT NULL", + quote_name(row[0], name_buff, 0)); } /* diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result index fac94e855a4..bc5b5095196 100644 --- a/mysql-test/r/mysqldump.result +++ b/mysql-test/r/mysqldump.result @@ -1988,7 +1988,7 @@ DROP TABLE IF EXISTS `v2`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE TABLE `v2` ( - `a` varchar(30) + `a` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; /*!50001 DROP TABLE IF EXISTS `v2`*/; @@ -2082,7 +2082,7 @@ DROP TABLE IF EXISTS `v1`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE TABLE `v1` ( - `a` int(11) + `a` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; /*!50001 DROP TABLE IF EXISTS `v1`*/; @@ -2156,7 +2156,7 @@ DROP TABLE IF EXISTS `v2`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE TABLE `v2` ( - `a` varchar(30) + `a` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; /*!50001 DROP TABLE IF EXISTS `v2`*/; @@ -2270,9 +2270,9 @@ DROP TABLE IF EXISTS `v1`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE TABLE `v1` ( - `a` int(11), - `b` int(11), - `c` varchar(30) + `a` tinyint NOT NULL, + `b` tinyint NOT NULL, + `c` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; DROP TABLE IF EXISTS `v2`; @@ -2280,7 +2280,7 @@ DROP TABLE IF EXISTS `v2`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE TABLE `v2` ( - `a` int(11) + `a` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; DROP TABLE IF EXISTS `v3`; @@ -2288,9 +2288,9 @@ DROP TABLE IF EXISTS `v3`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE TABLE `v3` ( - `a` int(11), - `b` int(11), - `c` varchar(30) + `a` tinyint NOT NULL, + `b` tinyint NOT NULL, + `c` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; /*!50001 DROP TABLE IF EXISTS `v1`*/; @@ -3027,9 +3027,9 @@ DROP TABLE IF EXISTS `v0`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE TABLE `v0` ( - `a` int(11), - `b` varchar(32), - `c` varchar(32) + `a` tinyint NOT NULL, + `b` tinyint NOT NULL, + `c` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; DROP TABLE IF EXISTS `v1`; @@ -3037,9 +3037,9 @@ DROP TABLE IF EXISTS `v1`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE TABLE `v1` ( - `a` int(11), - `b` varchar(32), - `c` varchar(32) + `a` tinyint NOT NULL, + `b` tinyint NOT NULL, + `c` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; DROP TABLE IF EXISTS `v2`; @@ -3047,9 +3047,9 @@ DROP TABLE IF EXISTS `v2`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE TABLE `v2` ( - `a` int(11), - `b` varchar(32), - `c` varchar(32) + `a` tinyint NOT NULL, + `b` tinyint NOT NULL, + `c` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; @@ -3429,7 +3429,7 @@ DROP TABLE IF EXISTS `v1`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE TABLE `v1` ( - `id` int(11) + `id` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; @@ -3489,7 +3489,7 @@ USE `mysqldump_views`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE TABLE `nasishnasifu` ( - `id` bigint(20) unsigned + `id` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; @@ -3882,7 +3882,7 @@ DROP TABLE IF EXISTS `v2`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE TABLE `v2` ( - `c` int(11) + `c` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; /*!50001 DROP TABLE IF EXISTS `v2`*/; @@ -4299,7 +4299,7 @@ DROP TABLE IF EXISTS `v1`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; /*!50001 CREATE TABLE `v1` ( - `id` int(11) + `id` tinyint NOT NULL ) ENGINE=MyISAM */; SET character_set_client = @saved_cs_client; From 49adfa3d19f92a8e4bb17c2930b9bfdcbd134c85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 17 Jan 2013 17:30:13 +0200 Subject: [PATCH 022/172] Bug#16138582 MTR_MEMO_RELEASE AND DYN_ARRAY TOGETHER ARE VERY INEFFICIENT Get rid of O(n^2) scan in dyn array (mtr->memo) operations, accessing the dyn array blocks directly. dyn_array_get_last_block(), dyn_array_get_next_block(), dyn_array_get_prev_block(): Define as a constness-preserving macro. Add const qualifiers to many dyn_array functions. mtr_memo_slot_release_func(): Renamed from mtr_memo_slot_release(): Make mtr_t* a debug-only parameter. Assume that slot->object != NULL. mtr_memo_pop_all(): Access the dyn_array blocks directly, replacing O(n^2) operation with O(n). mtr_memo_release(): Access the dyn_array blocks directly, replacing O(n^2) operation with O(n). This caused the performance problem. rb#1540 approved by Jimmy Yang --- storage/innobase/dyn/dyn0dyn.c | 8 +- storage/innobase/include/dyn0dyn.h | 84 +++++++++------- storage/innobase/include/dyn0dyn.ic | 141 ++++++++------------------- storage/innobase/include/mtr0mtr.h | 10 +- storage/innobase/mtr/mtr0mtr.c | 145 ++++++++++++++-------------- 5 files changed, 173 insertions(+), 215 deletions(-) diff --git a/storage/innobase/dyn/dyn0dyn.c b/storage/innobase/dyn/dyn0dyn.c index e1275f040f3..d0f50ad0c32 100644 --- a/storage/innobase/dyn/dyn0dyn.c +++ b/storage/innobase/dyn/dyn0dyn.c @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1996, 2009, Innobase Oy. All Rights Reserved. +Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -11,8 +11,8 @@ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with -this program; if not, write to the Free Software Foundation, Inc., 59 Temple -Place, Suite 330, Boston, MA 02111-1307 USA +this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA *****************************************************************************/ @@ -35,7 +35,7 @@ UNIV_INTERN dyn_block_t* dyn_array_add_block( /*================*/ - dyn_array_t* arr) /*!< in: dyn array */ + dyn_array_t* arr) /*!< in/out: dyn array */ { mem_heap_t* heap; dyn_block_t* block; diff --git a/storage/innobase/include/dyn0dyn.h b/storage/innobase/include/dyn0dyn.h index 121a5946ac7..62ed862e82c 100644 --- a/storage/innobase/include/dyn0dyn.h +++ b/storage/innobase/include/dyn0dyn.h @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1996, 2009, Innobase Oy. All Rights Reserved. +Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -11,8 +11,8 @@ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with -this program; if not, write to the Free Software Foundation, Inc., 59 Temple -Place, Suite 330, Boston, MA 02111-1307 USA +this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA *****************************************************************************/ @@ -47,15 +47,17 @@ UNIV_INLINE dyn_array_t* dyn_array_create( /*=============*/ - dyn_array_t* arr); /*!< in: pointer to a memory buffer of + dyn_array_t* arr) /*!< in/out memory buffer of size sizeof(dyn_array_t) */ + __attribute__((nonnull)); /************************************************************//** Frees a dynamic array. */ UNIV_INLINE void dyn_array_free( /*===========*/ - dyn_array_t* arr); /*!< in: dyn array */ + dyn_array_t* arr) /*!< in,own: dyn array */ + __attribute__((nonnull)); /*********************************************************************//** Makes room on top of a dyn array and returns a pointer to a buffer in it. After copying the elements, the caller must close the buffer using @@ -66,8 +68,9 @@ byte* dyn_array_open( /*===========*/ dyn_array_t* arr, /*!< in: dynamic array */ - ulint size); /*!< in: size in bytes of the buffer; MUST be + ulint size) /*!< in: size in bytes of the buffer; MUST be smaller than DYN_ARRAY_DATA_SIZE! */ + __attribute__((nonnull, warn_unused_result)); /*********************************************************************//** Closes the buffer returned by dyn_array_open. */ UNIV_INLINE @@ -75,7 +78,8 @@ void dyn_array_close( /*============*/ dyn_array_t* arr, /*!< in: dynamic array */ - byte* ptr); /*!< in: buffer space from ptr up was not used */ + const byte* ptr) /*!< in: end of used space */ + __attribute__((nonnull)); /*********************************************************************//** Makes room on top of a dyn array and returns a pointer to the added element. The caller must copy the element to @@ -85,8 +89,9 @@ UNIV_INLINE void* dyn_array_push( /*===========*/ - dyn_array_t* arr, /*!< in: dynamic array */ - ulint size); /*!< in: size in bytes of the element */ + dyn_array_t* arr, /*!< in/out: dynamic array */ + ulint size) /*!< in: size in bytes of the element */ + __attribute__((nonnull, warn_unused_result)); /************************************************************//** Returns pointer to an element in dyn array. @return pointer to element */ @@ -94,9 +99,10 @@ UNIV_INLINE void* dyn_array_get_element( /*==================*/ - dyn_array_t* arr, /*!< in: dyn array */ - ulint pos); /*!< in: position of element as bytes - from array start */ + const dyn_array_t* arr, /*!< in: dyn array */ + ulint pos) /*!< in: position of element + in bytes from array start */ + __attribute__((nonnull, warn_unused_result)); /************************************************************//** Returns the size of stored data in a dyn array. @return data size in bytes */ @@ -104,30 +110,33 @@ UNIV_INLINE ulint dyn_array_get_data_size( /*====================*/ - dyn_array_t* arr); /*!< in: dyn array */ + const dyn_array_t* arr) /*!< in: dyn array */ + __attribute__((nonnull, warn_unused_result, pure)); /************************************************************//** -Gets the first block in a dyn array. */ -UNIV_INLINE -dyn_block_t* -dyn_array_get_first_block( -/*======================*/ - dyn_array_t* arr); /*!< in: dyn array */ +Gets the first block in a dyn array. +@param arr dyn array +@return first block */ +#define dyn_array_get_first_block(arr) (arr) /************************************************************//** -Gets the last block in a dyn array. */ -UNIV_INLINE -dyn_block_t* -dyn_array_get_last_block( -/*=====================*/ - dyn_array_t* arr); /*!< in: dyn array */ +Gets the last block in a dyn array. +@param arr dyn array +@return last block */ +#define dyn_array_get_last_block(arr) \ + ((arr)->heap ? UT_LIST_GET_LAST((arr)->base) : (arr)) /********************************************************************//** Gets the next block in a dyn array. -@return pointer to next, NULL if end of list */ -UNIV_INLINE -dyn_block_t* -dyn_array_get_next_block( -/*=====================*/ - dyn_array_t* arr, /*!< in: dyn array */ - dyn_block_t* block); /*!< in: dyn array block */ +@param arr dyn array +@param block dyn array block +@return pointer to next, NULL if end of list */ +#define dyn_array_get_next_block(arr, block) \ + ((arr)->heap ? UT_LIST_GET_NEXT(list, block) : NULL) +/********************************************************************//** +Gets the previous block in a dyn array. +@param arr dyn array +@param block dyn array block +@return pointer to previous, NULL if end of list */ +#define dyn_array_get_prev_block(arr, block) \ + ((arr)->heap ? UT_LIST_GET_PREV(list, block) : NULL) /********************************************************************//** Gets the number of used bytes in a dyn array block. @return number of bytes used */ @@ -135,7 +144,8 @@ UNIV_INLINE ulint dyn_block_get_used( /*===============*/ - dyn_block_t* block); /*!< in: dyn array block */ + const dyn_block_t* block) /*!< in: dyn array block */ + __attribute__((nonnull, warn_unused_result, pure)); /********************************************************************//** Gets pointer to the start of data in a dyn array block. @return pointer to data */ @@ -143,16 +153,18 @@ UNIV_INLINE byte* dyn_block_get_data( /*===============*/ - dyn_block_t* block); /*!< in: dyn array block */ + const dyn_block_t* block) /*!< in: dyn array block */ + __attribute__((nonnull, warn_unused_result, pure)); /********************************************************//** Pushes n bytes to a dyn array. */ UNIV_INLINE void dyn_push_string( /*============*/ - dyn_array_t* arr, /*!< in: dyn array */ + dyn_array_t* arr, /*!< in/out: dyn array */ const byte* str, /*!< in: string to write */ - ulint len); /*!< in: string length */ + ulint len) /*!< in: string length */ + __attribute__((nonnull)); /*#################################################################*/ diff --git a/storage/innobase/include/dyn0dyn.ic b/storage/innobase/include/dyn0dyn.ic index 110e674abff..177877ed1fd 100644 --- a/storage/innobase/include/dyn0dyn.ic +++ b/storage/innobase/include/dyn0dyn.ic @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1996, 2009, Innobase Oy. All Rights Reserved. +Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -11,8 +11,8 @@ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with -this program; if not, write to the Free Software Foundation, Inc., 59 Temple -Place, Suite 330, Boston, MA 02111-1307 USA +this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA *****************************************************************************/ @@ -35,56 +35,8 @@ UNIV_INTERN dyn_block_t* dyn_array_add_block( /*================*/ - dyn_array_t* arr); /*!< in: dyn array */ - - -/************************************************************//** -Gets the first block in a dyn array. */ -UNIV_INLINE -dyn_block_t* -dyn_array_get_first_block( -/*======================*/ - dyn_array_t* arr) /*!< in: dyn array */ -{ - return(arr); -} - -/************************************************************//** -Gets the last block in a dyn array. */ -UNIV_INLINE -dyn_block_t* -dyn_array_get_last_block( -/*=====================*/ - dyn_array_t* arr) /*!< in: dyn array */ -{ - if (arr->heap == NULL) { - - return(arr); - } - - return(UT_LIST_GET_LAST(arr->base)); -} - -/********************************************************************//** -Gets the next block in a dyn array. -@return pointer to next, NULL if end of list */ -UNIV_INLINE -dyn_block_t* -dyn_array_get_next_block( -/*=====================*/ - dyn_array_t* arr, /*!< in: dyn array */ - dyn_block_t* block) /*!< in: dyn array block */ -{ - ut_ad(arr && block); - - if (arr->heap == NULL) { - ut_ad(arr == block); - - return(NULL); - } - - return(UT_LIST_GET_NEXT(list, block)); -} + dyn_array_t* arr) /*!< in/out: dyn array */ + __attribute__((nonnull, warn_unused_result)); /********************************************************************//** Gets the number of used bytes in a dyn array block. @@ -93,7 +45,7 @@ UNIV_INLINE ulint dyn_block_get_used( /*===============*/ - dyn_block_t* block) /*!< in: dyn array block */ + const dyn_block_t* block) /*!< in: dyn array block */ { ut_ad(block); @@ -107,11 +59,11 @@ UNIV_INLINE byte* dyn_block_get_data( /*===============*/ - dyn_block_t* block) /*!< in: dyn array block */ + const dyn_block_t* block) /*!< in: dyn array block */ { ut_ad(block); - return(block->data); + return((byte*) block->data); } /*********************************************************************//** @@ -121,7 +73,7 @@ UNIV_INLINE dyn_array_t* dyn_array_create( /*=============*/ - dyn_array_t* arr) /*!< in: pointer to a memory buffer of + dyn_array_t* arr) /*!< in/out: memory buffer of size sizeof(dyn_array_t) */ { ut_ad(arr); @@ -132,10 +84,9 @@ dyn_array_create( arr->heap = NULL; arr->used = 0; -#ifdef UNIV_DEBUG - arr->buf_end = 0; - arr->magic_n = DYN_BLOCK_MAGIC_N; -#endif + ut_d(arr->buf_end = 0); + ut_d(arr->magic_n = DYN_BLOCK_MAGIC_N); + return(arr); } @@ -151,9 +102,7 @@ dyn_array_free( mem_heap_free(arr->heap); } -#ifdef UNIV_DEBUG - arr->magic_n = 0; -#endif + ut_d(arr->magic_n = 0); } /*********************************************************************//** @@ -164,7 +113,7 @@ UNIV_INLINE void* dyn_array_push( /*===========*/ - dyn_array_t* arr, /*!< in: dynamic array */ + dyn_array_t* arr, /*!< in/out: dynamic array */ ulint size) /*!< in: size in bytes of the element */ { dyn_block_t* block; @@ -176,24 +125,23 @@ dyn_array_push( ut_ad(size); block = arr; - used = block->used; - if (used + size > DYN_ARRAY_DATA_SIZE) { + if (block->used + size > DYN_ARRAY_DATA_SIZE) { /* Get the last array block */ block = dyn_array_get_last_block(arr); - used = block->used; - if (used + size > DYN_ARRAY_DATA_SIZE) { + if (block->used + size > DYN_ARRAY_DATA_SIZE) { block = dyn_array_add_block(arr); - used = block->used; } } + used = block->used; + block->used = used + size; ut_ad(block->used <= DYN_ARRAY_DATA_SIZE); - return((block->data) + used); + return(block->data + used); } /*********************************************************************//** @@ -210,7 +158,6 @@ dyn_array_open( smaller than DYN_ARRAY_DATA_SIZE! */ { dyn_block_t* block; - ulint used; ut_ad(arr); ut_ad(arr->magic_n == DYN_BLOCK_MAGIC_N); @@ -218,28 +165,23 @@ dyn_array_open( ut_ad(size); block = arr; - used = block->used; - if (used + size > DYN_ARRAY_DATA_SIZE) { + if (block->used + size > DYN_ARRAY_DATA_SIZE) { /* Get the last array block */ block = dyn_array_get_last_block(arr); - used = block->used; - if (used + size > DYN_ARRAY_DATA_SIZE) { + if (block->used + size > DYN_ARRAY_DATA_SIZE) { block = dyn_array_add_block(arr); - used = block->used; ut_a(size <= DYN_ARRAY_DATA_SIZE); } } ut_ad(block->used <= DYN_ARRAY_DATA_SIZE); -#ifdef UNIV_DEBUG ut_ad(arr->buf_end == 0); + ut_d(arr->buf_end = block->used + size); - arr->buf_end = used + size; -#endif - return((block->data) + used); + return(block->data + block->used); } /*********************************************************************//** @@ -248,8 +190,8 @@ UNIV_INLINE void dyn_array_close( /*============*/ - dyn_array_t* arr, /*!< in: dynamic array */ - byte* ptr) /*!< in: buffer space from ptr up was not used */ + dyn_array_t* arr, /*!< in/out: dynamic array */ + const byte* ptr) /*!< in: end of used space */ { dyn_block_t* block; @@ -264,9 +206,7 @@ dyn_array_close( ut_ad(block->used <= DYN_ARRAY_DATA_SIZE); -#ifdef UNIV_DEBUG - arr->buf_end = 0; -#endif + ut_d(arr->buf_end = 0); } /************************************************************//** @@ -276,12 +216,11 @@ UNIV_INLINE void* dyn_array_get_element( /*==================*/ - dyn_array_t* arr, /*!< in: dyn array */ - ulint pos) /*!< in: position of element as bytes - from array start */ + const dyn_array_t* arr, /*!< in: dyn array */ + ulint pos) /*!< in: position of element + in bytes from array start */ { - dyn_block_t* block; - ulint used; + const dyn_block_t* block; ut_ad(arr); ut_ad(arr->magic_n == DYN_BLOCK_MAGIC_N); @@ -290,21 +229,23 @@ dyn_array_get_element( block = dyn_array_get_first_block(arr); if (arr->heap != NULL) { - used = dyn_block_get_used(block); + for (;;) { + ulint used = dyn_block_get_used(block); + + if (pos < used) { + break; + } - while (pos >= used) { pos -= used; block = UT_LIST_GET_NEXT(list, block); ut_ad(block); - - used = dyn_block_get_used(block); } } ut_ad(block); ut_ad(dyn_block_get_used(block) >= pos); - return(block->data + pos); + return((byte*) block->data + pos); } /************************************************************//** @@ -314,10 +255,10 @@ UNIV_INLINE ulint dyn_array_get_data_size( /*====================*/ - dyn_array_t* arr) /*!< in: dyn array */ + const dyn_array_t* arr) /*!< in: dyn array */ { - dyn_block_t* block; - ulint sum = 0; + const dyn_block_t* block; + ulint sum = 0; ut_ad(arr); ut_ad(arr->magic_n == DYN_BLOCK_MAGIC_N); @@ -344,7 +285,7 @@ UNIV_INLINE void dyn_push_string( /*============*/ - dyn_array_t* arr, /*!< in: dyn array */ + dyn_array_t* arr, /*!< in/out: dyn array */ const byte* str, /*!< in: string to write */ ulint len) /*!< in: string length */ { diff --git a/storage/innobase/include/mtr0mtr.h b/storage/innobase/include/mtr0mtr.h index 46f1ff9310c..88ac3c138de 100644 --- a/storage/innobase/include/mtr0mtr.h +++ b/storage/innobase/include/mtr0mtr.h @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1995, 2012, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -295,9 +295,10 @@ UNIV_INTERN void mtr_memo_release( /*=============*/ - mtr_t* mtr, /*!< in: mtr */ + mtr_t* mtr, /*!< in/out: mini-transaction */ void* object, /*!< in: object */ - ulint type); /*!< in: object type: MTR_MEMO_S_LOCK, ... */ + ulint type) /*!< in: object type: MTR_MEMO_S_LOCK, ... */ + __attribute__((nonnull)); #ifdef UNIV_DEBUG # ifndef UNIV_HOTBACKUP /**********************************************************//** @@ -309,7 +310,8 @@ mtr_memo_contains( /*==============*/ mtr_t* mtr, /*!< in: mtr */ const void* object, /*!< in: object to search */ - ulint type); /*!< in: type of object */ + ulint type) /*!< in: type of object */ + __attribute__((warn_unused_result, nonnull)); /**********************************************************//** Checks if memo contains the given page. diff --git a/storage/innobase/mtr/mtr0mtr.c b/storage/innobase/mtr/mtr0mtr.c index d852ed6f496..a5c98761523 100644 --- a/storage/innobase/mtr/mtr0mtr.c +++ b/storage/innobase/mtr/mtr0mtr.c @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1995, 2012, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -39,72 +39,81 @@ Created 11/26/1995 Heikki Tuuri # include "log0recv.h" /*****************************************************************//** Releases the item in the slot given. */ -static +static __attribute__((nonnull)) void -mtr_memo_slot_release( -/*==================*/ - mtr_t* mtr, /*!< in: mtr */ +mtr_memo_slot_release_func( +/*=======================*/ +#ifdef UNIV_DEBUG + mtr_t* mtr, /*!< in/out: mini-transaction */ +#endif /* UNIV_DEBUG */ mtr_memo_slot_t* slot) /*!< in: memo slot */ { - void* object; - ulint type; - - ut_ad(mtr); - ut_ad(slot); - -#ifndef UNIV_DEBUG - UT_NOT_USED(mtr); -#endif /* UNIV_DEBUG */ - - object = slot->object; - type = slot->type; - - if (UNIV_LIKELY(object != NULL)) { - if (type <= MTR_MEMO_BUF_FIX) { - buf_page_release((buf_block_t*)object, type); - } else if (type == MTR_MEMO_S_LOCK) { - rw_lock_s_unlock((rw_lock_t*)object); -#ifdef UNIV_DEBUG - } else if (type != MTR_MEMO_X_LOCK) { - ut_ad(type == MTR_MEMO_MODIFY); - ut_ad(mtr_memo_contains(mtr, object, - MTR_MEMO_PAGE_X_FIX)); -#endif /* UNIV_DEBUG */ - } else { - rw_lock_x_unlock((rw_lock_t*)object); - } - } - + void* object = slot->object; slot->object = NULL; + + /* slot release is a local operation for the current mtr. + We must not be holding the flush_order mutex while + doing this. */ + ut_ad(!log_flush_order_mutex_own()); + + switch (slot->type) { + case MTR_MEMO_PAGE_S_FIX: + case MTR_MEMO_PAGE_X_FIX: + case MTR_MEMO_BUF_FIX: + buf_page_release((buf_block_t*) object, slot->type); + break; + case MTR_MEMO_S_LOCK: + rw_lock_s_unlock((rw_lock_t*) object); + break; + case MTR_MEMO_X_LOCK: + rw_lock_x_unlock((rw_lock_t*) object); + break; +#ifdef UNIV_DEBUG + default: + ut_ad(slot->type == MTR_MEMO_MODIFY); + ut_ad(mtr_memo_contains(mtr, object, MTR_MEMO_PAGE_X_FIX)); +#endif /* UNIV_DEBUG */ + } } +#ifdef UNIV_DEBUG +# define mtr_memo_slot_release(mtr, slot) mtr_memo_slot_release_func(mtr, slot) +#else /* UNIV_DEBUG */ +# define mtr_memo_slot_release(mtr, slot) mtr_memo_slot_release_func(slot) +#endif /* UNIV_DEBUG */ + /**********************************************************//** Releases the mlocks and other objects stored in an mtr memo. They are released in the order opposite to which they were pushed to the memo. */ -static +static __attribute__((nonnull)) void mtr_memo_pop_all( /*=============*/ - mtr_t* mtr) /*!< in: mtr */ + mtr_t* mtr) /*!< in/out: mini-transaction */ { - mtr_memo_slot_t* slot; - dyn_array_t* memo; - ulint offset; + const dyn_block_t* block; - ut_ad(mtr); ut_ad(mtr->magic_n == MTR_MAGIC_N); ut_ad(mtr->state == MTR_COMMITTING); /* Currently only used in commit */ - memo = &(mtr->memo); - offset = dyn_array_get_data_size(memo); + for (block = dyn_array_get_last_block(&mtr->memo); + block; + block = dyn_array_get_prev_block(&mtr->memo, block)) { + const mtr_memo_slot_t* start + = (mtr_memo_slot_t*) dyn_block_get_data(block); + mtr_memo_slot_t* slot + = (mtr_memo_slot_t*) (dyn_block_get_data(block) + + dyn_block_get_used(block)); - while (offset > 0) { - offset -= sizeof(mtr_memo_slot_t); - slot = dyn_array_get_element(memo, offset); + ut_ad(!(dyn_block_get_used(block) % sizeof(mtr_memo_slot_t))); - mtr_memo_slot_release(mtr, slot); + while (slot-- != start) { + if (slot->object != NULL) { + mtr_memo_slot_release(mtr, slot); + } + } } } @@ -288,42 +297,36 @@ UNIV_INTERN void mtr_memo_release( /*=============*/ - mtr_t* mtr, /*!< in: mtr */ + mtr_t* mtr, /*!< in/out: mini-transaction */ void* object, /*!< in: object */ ulint type) /*!< in: object type: MTR_MEMO_S_LOCK, ... */ { - mtr_memo_slot_t* slot; - dyn_array_t* memo; - ulint offset; + const dyn_block_t* block; - ut_ad(mtr); ut_ad(mtr->magic_n == MTR_MAGIC_N); ut_ad(mtr->state == MTR_ACTIVE); + /* We cannot release a page that has been written to in the + middle of a mini-transaction. */ + ut_ad(!mtr->modifications || type != MTR_MEMO_PAGE_X_FIX); - memo = &(mtr->memo); + for (block = dyn_array_get_last_block(&mtr->memo); + block; + block = dyn_array_get_prev_block(&mtr->memo, block)) { + const mtr_memo_slot_t* start + = (mtr_memo_slot_t*) dyn_block_get_data(block); + mtr_memo_slot_t* slot + = (mtr_memo_slot_t*) (dyn_block_get_data(block) + + dyn_block_get_used(block)); - offset = dyn_array_get_data_size(memo); + ut_ad(!(dyn_block_get_used(block) % sizeof(mtr_memo_slot_t))); - log_flush_order_mutex_enter(); - while (offset > 0) { - offset -= sizeof(mtr_memo_slot_t); - - slot = dyn_array_get_element(memo, offset); - - if (object == slot->object && type == slot->type) { - - /* We cannot release a page that has been written - to in the middle of a mini-transaction. */ - - ut_ad(!(mtr->modifications - && slot->type == MTR_MEMO_PAGE_X_FIX)); - - mtr_memo_slot_release(mtr, slot); - - break; + while (slot-- != start) { + if (object == slot->object && type == slot->type) { + mtr_memo_slot_release(mtr, slot); + return; + } } } - log_flush_order_mutex_exit(); } #endif /* !UNIV_HOTBACKUP */ From 9b904d35afc83aadd2deafe066ea1689ce0a7100 Mon Sep 17 00:00:00 2001 From: Astha Pareek Date: Fri, 18 Jan 2013 12:32:37 +0530 Subject: [PATCH 023/172] Description The test, binlog.binlog_spurious_ddl_errors was failing on pb2 at the statement "UNINSTALL PLUGIN example;" with this warning: "Warning 1620 Plugin is busy and will be uninstalled on shutdown " Fix Spurious warnings occur in the test since we do not empty the Query cache, used by the example plugin at the time of creating tables using the plugin. Hence, the query chache is flushed before uninstalling the plugin. Also, as part of running the test across platforms, the plugin installation script is changed. --- mysql-test/suite/binlog/r/binlog_spurious_ddl_errors.result | 1 + mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test | 4 +++- mysql-test/suite/binlog/t/disabled.def | 1 - 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mysql-test/suite/binlog/r/binlog_spurious_ddl_errors.result b/mysql-test/suite/binlog/r/binlog_spurious_ddl_errors.result index 17a473ff062..1a81eee1a58 100644 --- a/mysql-test/suite/binlog/r/binlog_spurious_ddl_errors.result +++ b/mysql-test/suite/binlog/r/binlog_spurious_ddl_errors.result @@ -48,6 +48,7 @@ DROP TABLE t_stmt; ################################################################################ # CLEAN UP # ################################################################################ +flush tables; UNINSTALL PLUGIN example; SET @@global.binlog_format = @old_binlog_format; SET @@session.binlog_format = @old_binlog_format; diff --git a/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test b/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test index 6514ff1f712..d8d2b932f48 100644 --- a/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test +++ b/mysql-test/suite/binlog/t/binlog_spurious_ddl_errors.test @@ -26,7 +26,8 @@ --source include/have_log_bin.inc SET @old_binlog_format= @@global.binlog_format; -INSTALL PLUGIN example SONAME 'ha_example.so'; +--replace_regex /\.dll/.so/ +eval INSTALL PLUGIN example SONAME '$EXAMPLE_PLUGIN'; --echo ################################################################################ --echo # Verifies if ER_BINLOG_STMT_MODE_AND_ROW_ENGINE happens by setting the binlog @@ -90,6 +91,7 @@ DROP TABLE t_stmt; --echo ################################################################################ --echo # CLEAN UP # --echo ################################################################################ +flush tables; UNINSTALL PLUGIN example; SET @@global.binlog_format = @old_binlog_format; SET @@session.binlog_format = @old_binlog_format; diff --git a/mysql-test/suite/binlog/t/disabled.def b/mysql-test/suite/binlog/t/disabled.def index 1abc9951322..c1bc7842a4d 100644 --- a/mysql-test/suite/binlog/t/disabled.def +++ b/mysql-test/suite/binlog/t/disabled.def @@ -10,4 +10,3 @@ # ############################################################################## binlog_truncate_innodb : BUG#11764459 2010-10-20 anitha Originally disabled due to BUG#42643. Product bug fixed, but test changes needed -binlog_spurious_ddl_errors : BUG#11761680 2010-06-03 alik binlog_spurious_ddl_errors.test fails, thus disabled From 008bc7e102899d4ecd52101659dbec6454fc7cb0 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 18 Jan 2013 14:13:59 +0200 Subject: [PATCH 024/172] From c8de0f9aec5e61a126409444d1e62b63e74f4416 Mon Sep 17 00:00:00 2001 From: Astha Pareek Date: Fri, 18 Jan 2013 18:26:02 +0530 Subject: [PATCH 025/172] BUG#11761680 disabled binlog_spurious_ddl_errors on mysql-5.5 --- mysql-test/suite/binlog/t/disabled.def | 1 + 1 file changed, 1 insertion(+) diff --git a/mysql-test/suite/binlog/t/disabled.def b/mysql-test/suite/binlog/t/disabled.def index c1bc7842a4d..424e5549541 100644 --- a/mysql-test/suite/binlog/t/disabled.def +++ b/mysql-test/suite/binlog/t/disabled.def @@ -10,3 +10,4 @@ # ############################################################################## binlog_truncate_innodb : BUG#11764459 2010-10-20 anitha Originally disabled due to BUG#42643. Product bug fixed, but test changes needed +binlog_spurious_ddl_errors : BUG#11761680 2013-01-18 astha Fixed on mysql-5.6 and trunk From bc21e8cd6946e77ed0c594113d5b47949c89659b Mon Sep 17 00:00:00 2001 From: Venkatesh Duggirala Date: Sat, 19 Jan 2013 06:01:46 +0530 Subject: [PATCH 026/172] Bug#11752707-SLAVE CRASHES IF RBR HAS AS DESTINATION A VIEW RATHER THAN A TABLE Problem: In RBR, If a table is converted into a view at slave, (i.e., "drop table 'object1'" & "create view 'object1'"), then any DML operations on the table at master are causing crash at slave. Analysis: Slave prepares tables to be opened for DML list when it receives Table_map_log_event(s). And the same list will be sent to open_table function. Open_table logic assumes that if the list contains a view object, it also contains "select_lex" object of that view. In the above special case, the table object does not contain 'select_lex' as it is base table at master. Since it is a view at slave, open_table logic goes to 'mysql_make_view()' function which assumes that 'select_lex' exists for the object. Fix: While preparing 'tables to be opened' list, we should make sure that table required type is 'base table'. If it is not base table while opening the object, mysql_make_view will throw an error similar to 'object is not a base table' sql/log_event.cc: Restrict that all table_map_log_event's objects should be base tables @ slave also. --- sql/log_event.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/sql/log_event.cc b/sql/log_event.cc index 63770e340b0..542b5e2dc60 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -8573,6 +8573,7 @@ int Table_map_log_event::do_apply_event(Relay_log_info const *rli) table_list->next_global= table_list->next_local= 0; table_list->table_id= DBUG_EVALUATE_IF("inject_tblmap_same_id_maps_diff_table", 0, m_table_id); table_list->updating= 1; + table_list->required_type= FRMTYPE_TABLE; strmov(table_list->db, rpl_filter->get_rewrite_db(m_dbnam, &dummy_len)); strmov(table_list->table_name, m_tblnam); DBUG_PRINT("debug", ("table: %s is mapped to %u", table_list->table_name, table_list->table_id)); From e7283ceaf034072dcd9ad01b2377ee2101eb1b4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Mon, 21 Jan 2013 14:59:49 +0200 Subject: [PATCH 027/172] Bug#16067973 DROP TABLE SLOW WHEN IT DECOMPRESS COMPRESSED-ONLY PAGES buf_page_get_gen(): Do not attempt to decompress a compressed-only page when mode == BUF_PEEK_IF_IN_POOL. This mode is only being used by btr_search_drop_page_hash_when_freed(). There cannot be any adaptive hash index pointing to a page that does not exist in uncompressed format in the buffer pool. innodb_buffer_pool_evict_update(): New function for debug builds, to handle SET GLOBAL innodb_buffer_pool_evicted='uncompressed' by evicting all uncompressed page frames of compressed tablespaces from the buffer pool. rb#1873 approved by Jimmy Yang --- .../r/innodb_buffer_pool_evict_basic.result | 7 +++ .../t/innodb_buffer_pool_evict_basic.test | 10 +++ storage/innodb_plugin/ChangeLog | 8 ++- storage/innodb_plugin/buf/buf0buf.c | 11 +++- storage/innodb_plugin/handler/ha_innodb.cc | 61 ++++++++++++++++++- 5 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 mysql-test/suite/sys_vars/r/innodb_buffer_pool_evict_basic.result create mode 100644 mysql-test/suite/sys_vars/t/innodb_buffer_pool_evict_basic.test diff --git a/mysql-test/suite/sys_vars/r/innodb_buffer_pool_evict_basic.result b/mysql-test/suite/sys_vars/r/innodb_buffer_pool_evict_basic.result new file mode 100644 index 00000000000..459ad95bdc6 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/innodb_buffer_pool_evict_basic.result @@ -0,0 +1,7 @@ +SELECT @@global.innodb_buffer_pool_evict; +@@global.innodb_buffer_pool_evict + +SET GLOBAL innodb_buffer_pool_evict = 'uncompressed'; +SELECT @@global.innodb_buffer_pool_evict; +@@global.innodb_buffer_pool_evict + diff --git a/mysql-test/suite/sys_vars/t/innodb_buffer_pool_evict_basic.test b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_evict_basic.test new file mode 100644 index 00000000000..2350d55c57b --- /dev/null +++ b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_evict_basic.test @@ -0,0 +1,10 @@ +-- source include/have_innodb_plugin.inc +# This is a debug variable for now +-- source include/have_debug.inc + +SELECT @@global.innodb_buffer_pool_evict; + +SET GLOBAL innodb_buffer_pool_evict = 'uncompressed'; + +# Should always be empty. +SELECT @@global.innodb_buffer_pool_evict; diff --git a/storage/innodb_plugin/ChangeLog b/storage/innodb_plugin/ChangeLog index 6a389f618af..d1953ec6d61 100644 --- a/storage/innodb_plugin/ChangeLog +++ b/storage/innodb_plugin/ChangeLog @@ -1,3 +1,9 @@ +2013-01-21 The InnoDB Team + + * buf/buf0buf.cc, handler/ha_innodb.cc: + Fix Bug#16067973 DROP TABLE IS SLOW WHEN IT DECOMPRESSES + COMPRESSED-ONLY PAGES + 2013-01-11 The InnoDB Team * row/row0sel.c: Fix Bug#16088883 KILLING A QUERY INSIDE INNODB CAUSES IT TO @@ -6,7 +12,7 @@ 2012-12-18 The InnoDB Team * include/univ.i: - Fix Bug#Bug#13463493 INNODB PLUGIN WERE CHANGED, BUT STILL USE THE + Fix Bug#13463493 INNODB PLUGIN WERE CHANGED, BUT STILL USE THE SAME VERSION NUMBER 1.0.17 2012-12-13 The InnoDB Team diff --git a/storage/innodb_plugin/buf/buf0buf.c b/storage/innodb_plugin/buf/buf0buf.c index e7e60fb2b2a..504718f6e08 100644 --- a/storage/innodb_plugin/buf/buf0buf.c +++ b/storage/innodb_plugin/buf/buf0buf.c @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1995, 2011, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, Google Inc. Portions of this file contain modifications contributed and copyrighted by @@ -1664,6 +1664,7 @@ loop2: if (must_read && (mode == BUF_GET_IF_IN_POOL || mode == BUF_PEEK_IF_IN_POOL)) { /* The page is only being read to buffer */ +null_exit: buf_pool_mutex_exit(); return(NULL); @@ -1678,6 +1679,14 @@ loop2: case BUF_BLOCK_ZIP_PAGE: case BUF_BLOCK_ZIP_DIRTY: + if (mode == BUF_PEEK_IF_IN_POOL) { + /* This mode is only used for dropping an + adaptive hash index. There cannot be an + adaptive hash index for a compressed-only + page, so do not bother decompressing the page. */ + goto null_exit; + } + bpage = &block->page; /* Protect bpage->buf_fix_count. */ mutex_enter(&buf_pool_zip_mutex); diff --git a/storage/innodb_plugin/handler/ha_innodb.cc b/storage/innodb_plugin/handler/ha_innodb.cc index 51068d26eff..229e7fe71e5 100644 --- a/storage/innodb_plugin/handler/ha_innodb.cc +++ b/storage/innodb_plugin/handler/ha_innodb.cc @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2000, 2011, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2000, 2013, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, 2009 Google Inc. Copyright (c) 2009, Percona Inc. @@ -10926,6 +10926,55 @@ innodb_change_buffering_update( *static_cast(save); } +#ifndef DBUG_OFF +static char* srv_buffer_pool_evict; + +/****************************************************************//** +Called on SET GLOBAL innodb_buffer_pool_evict=... +Handles some values specially, to evict pages from the buffer pool. +SET GLOBAL innodb_buffer_pool_evict='uncompressed' +evicts all uncompressed page frames of compressed tablespaces. */ +static +void +innodb_buffer_pool_evict_update( +/*============================*/ + THD* thd, /*!< in: thread handle */ + struct st_mysql_sys_var*var, /*!< in: pointer to system variable */ + void* var_ptr,/*!< out: ignored */ + const void* save) /*!< in: immediate result + from check function */ +{ + if (const char* op = *static_cast(save)) { + if (!strcmp(op, "uncompressed")) { + /* Evict all uncompressed pages of compressed + tables from the buffer pool. Keep the compressed + pages in the buffer pool. */ + + buf_pool_mutex_enter(); + + for (buf_block_t* block = UT_LIST_GET_LAST( + buf_pool->unzip_LRU); + block != NULL; ) { + + buf_block_t* prev_block + = UT_LIST_GET_PREV(unzip_LRU, block); + ut_ad(buf_block_get_state(block) + == BUF_BLOCK_FILE_PAGE); + ut_ad(block->in_unzip_LRU_list); + ut_ad(block->page.in_LRU_list); + + mutex_enter(&block->mutex); + buf_LRU_free_block(&block->page, FALSE); + mutex_exit(&block->mutex); + block = prev_block; + } + + buf_pool_mutex_exit(); + } + } +} +#endif /* !DBUG_OFF */ + static int show_innodb_vars(THD *thd, SHOW_VAR *var, char *buff) { innodb_export_status(); @@ -11128,6 +11177,13 @@ static MYSQL_SYSVAR_ULONG(autoextend_increment, srv_auto_extend_increment, "Data file autoextend increment in megabytes", NULL, NULL, 8L, 1L, 1000L, 0); +#ifndef DBUG_OFF +static MYSQL_SYSVAR_STR(buffer_pool_evict, srv_buffer_pool_evict, + PLUGIN_VAR_RQCMDARG, + "Evict pages from the InnoDB buffer pool.", + NULL, innodb_buffer_pool_evict_update, ""); +#endif /* !DBUG_OFF */ + static MYSQL_SYSVAR_LONGLONG(buffer_pool_size, innobase_buffer_pool_size, PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY, "The size of the memory buffer InnoDB uses to cache data and indexes of its tables.", @@ -11300,6 +11356,9 @@ static MYSQL_SYSVAR_BOOL(trx_purge_view_update_only_debug, static struct st_mysql_sys_var* innobase_system_variables[]= { MYSQL_SYSVAR(additional_mem_pool_size), MYSQL_SYSVAR(autoextend_increment), +#ifndef DBUG_OFF + MYSQL_SYSVAR(buffer_pool_evict), +#endif /* !DBUG_OFF */ MYSQL_SYSVAR(buffer_pool_size), MYSQL_SYSVAR(checksums), MYSQL_SYSVAR(commit_concurrency), From 19ea7c031d9d58dd2f5f9b41ae50b96795132213 Mon Sep 17 00:00:00 2001 From: Gleb Shchepa Date: Wed, 23 Jan 2013 09:51:50 +0400 Subject: [PATCH 028/172] Bug #11827369: ASSERTION FAILED: !THD->LEX->CONTEXT_ANALYSIS_ONLY Some queries with the "SELECT ... FROM DUAL" nested subqueries failed with an assertion on debug builds. Non-debug builds were not affected. There were a few different issues with similar assertion failures on different queries: 1. The first problem was related to the incomplete propagation of the "non-constant" item status from underlying subquery items to the outer item tree: in some cases non-constants were interpreted as constants and evaluated at the preparation stage (val_int() calls withing fix_fields() etc). Thus, the default implementation of Item_ref::const_item() from the Item parent class didn't take into account the "const_item" status of the referenced item tree -- it used the insufficient "used_tables() == 0" check instead. This worked in most cases since our "non-constant" functions like RAND() and SLEEP() set the RAND_TABLE_BIT in the used table map, so they aren't non-constant from Item_ref's "point of view". However, the "SELECT ... FROM DUAL" subquery may have an empty map of used tables, but at the same time subqueries are never "constant" at the context analysis stage (preparation, view creation etc). So, the non-contantness of such subqueries was missed. Fix: the Item_ref::const_item() function has been overloaded to take into account both (*ref)->const_item() status and tricky Item_ref::used_tables() return values, since the only (*ref)->const_item() call is not enough there. 2. In some cases instead of the const_item() call we check a value of the Item::with_subselect field to recognize items with nested subqueries. However, the Item_ref class didn't propagate this value from the referenced item tree. Fix: Item::has_subquery() and Item_ref::has_subquery() functions have been backported from 5.6. All direct references to the with_subselect fields of nested items have been with the has_subquery() function call. 3. The Item_func_regex class didn't propagate with_subselect as well, since it overloads the Item_func::fix_fields() function with insufficient fix_fields() implementation. Fix: the Item_func_regex::fix_fields() function has been modified to gather "constant" statuses from inner items. 4. The Item_func_isnull::update_used_tables() function has a special branch for the underlying item where the maybe_null value is false: in this case it marks the Item_func_isnull as a "const_item" and sets the cached_value to false. However, the Item_func_isnull::val_int() was not in sync with update_used_tables(): it didn't take into account neither const_item_cache nor cached_value for the case of "args[0]->maybe_null == false optimization". As far as such an Item_func_isnull has "const_item() == true", it's ok to call Item_func_isnull::val_int() etc from outer items on preparation stage. In this case the server tried to call Item_func_isnull::args[0]->isnull(), and if the args[0] item contained a nested not-nullable subquery, it failed with an assertion. Fix: take the value of Item_func_isnull::const_item_cache into account in the val_int() function. 5. The auxiliary Item_is_not_null_test class has a similar optimization in the update_used_tables() function as the Item_func_isnull class has, and the same issue in the val_int() function. In addition to that the Item_is_not_null_test::update_used_tables() doesn't update the const_item_cache value, so the "maybe_null" optimization is useless there. Thus, we missed some optimizations of cases like these (before and after the fix): < (a), --- > ((a)), or < having ((a) and (a)) --- > having 1 etc. Fix: update Item_is_not_null_test::const_item_cache in update_used_tables() and take in into account in val_int(). --- sql/item.cc | 4 ++-- sql/item.h | 18 +++++++++++++++++- sql/item_cmpfunc.cc | 12 ++++++++---- sql/item_func.cc | 4 ++-- sql/sql_select.cc | 4 ++-- 5 files changed, 31 insertions(+), 11 deletions(-) diff --git a/sql/item.cc b/sql/item.cc index 63215179ac6..6038ea7fde6 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -428,7 +428,7 @@ Item::Item(THD *thd, Item *item): fixed(item->fixed), is_autogenerated_name(item->is_autogenerated_name), collation(item->collation), - with_subselect(item->with_subselect), + with_subselect(item->has_subquery()), cmp_context(item->cmp_context) { next= thd->free_list; // Put in free list diff --git a/sql/item.h b/sql/item.h index 3a46280ed31..57a01b7d92d 100644 --- a/sql/item.h +++ b/sql/item.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1054,6 +1054,11 @@ public: { return Field::GEOM_GEOMETRY; }; String *check_well_formed_result(String *str, bool send_error= 0); bool eq_by_collation(Item *item, bool binary_cmp, CHARSET_INFO *cs); + + /** + Checks if this item or any of its decendents contains a subquery. + */ + virtual bool has_subquery() const { return with_subselect; } }; @@ -2264,6 +2269,10 @@ public: Field *get_tmp_table_field() { return result_field ? result_field : (*ref)->get_tmp_table_field(); } Item *get_tmp_table_item(THD *thd); + bool const_item() const + { + return (*ref)->const_item() && (used_tables() == 0); + } table_map used_tables() const { return depended_from ? OUTER_REF_TABLE_BIT : (*ref)->used_tables(); @@ -2332,6 +2341,13 @@ public: return (*ref)->get_time(ltime); } + /** + Checks if the item tree that ref points to contains a subquery. + */ + virtual bool has_subquery() const + { + return (*ref)->has_subquery(); + } }; diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 6e8fa9a5f75..9775cf732f5 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -4257,7 +4257,7 @@ Item_cond::fix_fields(THD *thd, Item **ref) const_item_cache= FALSE; } with_sum_func= with_sum_func || item->with_sum_func; - with_subselect|= item->with_subselect; + with_subselect|= item->has_subquery(); if (item->maybe_null) maybe_null=1; } @@ -4582,7 +4582,7 @@ longlong Item_func_isnull::val_int() Handle optimization if the argument can't be null This has to be here because of the test in update_used_tables(). */ - if (!used_tables_cache && !with_subselect) + if (const_item_cache) return cached_value; return args[0]->is_null() ? 1: 0; } @@ -4591,7 +4591,7 @@ longlong Item_is_not_null_test::val_int() { DBUG_ASSERT(fixed == 1); DBUG_ENTER("Item_is_not_null_test::val_int"); - if (!used_tables_cache && !with_subselect) + if (const_item_cache) { owner->was_null|= (!cached_value); DBUG_PRINT("info", ("cached: %ld", (long) cached_value)); @@ -4612,10 +4612,12 @@ longlong Item_is_not_null_test::val_int() */ void Item_is_not_null_test::update_used_tables() { + const_item_cache= false; if (!args[0]->maybe_null) { used_tables_cache= 0; /* is always true */ cached_value= (longlong) 1; + const_item_cache= true; } else { @@ -4624,6 +4626,7 @@ void Item_is_not_null_test::update_used_tables() { /* Remember if the value is always NULL or never NULL */ cached_value= (longlong) !args[0]->is_null(); + const_item_cache= true; } } } @@ -4879,6 +4882,7 @@ Item_func_regex::fix_fields(THD *thd, Item **ref) args[1]->fix_fields(thd, args + 1)) || args[1]->check_cols(1)) return TRUE; /* purecov: inspected */ with_sum_func=args[0]->with_sum_func || args[1]->with_sum_func; + with_subselect= args[0]->has_subquery() || args[1]->has_subquery(); max_length= 1; decimals= 0; diff --git a/sql/item_func.cc b/sql/item_func.cc index 21efaf83aa8..55cace0e941 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -198,7 +198,7 @@ Item_func::fix_fields(THD *thd, Item **ref) used_tables_cache|= item->used_tables(); not_null_tables_cache|= item->not_null_tables(); const_item_cache&= item->const_item(); - with_subselect|= item->with_subselect; + with_subselect|= item->has_subquery(); } } fix_length_and_dec(); diff --git a/sql/sql_select.cc b/sql/sql_select.cc index de9f0ead7a3..89567bd1f5e 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -7321,7 +7321,7 @@ remove_const(JOIN *join,ORDER *first_order, COND *cond, *simple_order=0; // Must do a temp table to sort else if (!(order_tables & not_const_tables)) { - if (order->item[0]->with_subselect && + if (order->item[0]->has_subquery() && !(join->select_lex->options & SELECT_DESCRIBE)) order->item[0]->val_str(&order->item[0]->str_value); DBUG_PRINT("info",("removing: %s", order->item[0]->full_name())); From 65cb30b3b94d1a0cca207623519f711d7ff11d17 Mon Sep 17 00:00:00 2001 From: Yasufumi Kinoshita Date: Wed, 23 Jan 2013 14:59:36 +0900 Subject: [PATCH 029/172] Bug #16089381 : POSSIBLE NUMBER UNDERFLOW AROUND CALLING PAGE_ZIP_EMPTY_SIZE() some callers for page_zip_empty_size() ignored possibility its returning 0, and could cause underflow. rb#1837 approved by Marko --- storage/innodb_plugin/btr/btr0cur.c | 43 +++++++++++++---------- storage/innodb_plugin/dict/dict0dict.c | 11 ++++-- storage/innodb_plugin/include/page0zip.ic | 6 ++-- 3 files changed, 37 insertions(+), 23 deletions(-) diff --git a/storage/innodb_plugin/btr/btr0cur.c b/storage/innodb_plugin/btr/btr0cur.c index e38b8a9bf53..4392fc16a5b 100644 --- a/storage/innodb_plugin/btr/btr0cur.c +++ b/storage/innodb_plugin/btr/btr0cur.c @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1994, 2013, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, Google Inc. Portions of this file contain modifications contributed and copyrighted by @@ -1146,27 +1146,13 @@ btr_cur_optimistic_insert( Subtract one byte for the encoded heap_no in the modification log. */ ulint free_space_zip = page_zip_empty_size( - cursor->index->n_fields, zip_size) - 1; + cursor->index->n_fields, zip_size); ulint n_uniq = dict_index_get_n_unique_in_tree(index); ut_ad(dict_table_is_comp(index->table)); - /* There should be enough room for two node pointer - records on an empty non-leaf page. This prevents - infinite page splits. */ - - if (UNIV_LIKELY(entry->n_fields >= n_uniq) - && UNIV_UNLIKELY(REC_NODE_PTR_SIZE - + rec_get_converted_size_comp_prefix( - index, entry->fields, n_uniq, - NULL) - /* On a compressed page, there is - a two-byte entry in the dense - page directory for every record. - But there is no record header. */ - - (REC_N_NEW_EXTRA_BYTES - 2) - > free_space_zip / 2)) { - + if (free_space_zip == 0) { +too_big: if (big_rec_vec) { dtuple_convert_back_big_rec( index, entry, big_rec_vec); @@ -1174,6 +1160,27 @@ btr_cur_optimistic_insert( return(DB_TOO_BIG_RECORD); } + + /* Subtract one byte for the encoded heap_no in the + modification log. */ + free_space_zip--; + + /* There should be enough room for two node pointer + records on an empty non-leaf page. This prevents + infinite page splits. */ + + if (entry->n_fields >= n_uniq + && (REC_NODE_PTR_SIZE + + rec_get_converted_size_comp_prefix( + index, entry->fields, n_uniq, NULL) + /* On a compressed page, there is + a two-byte entry in the dense + page directory for every record. + But there is no record header. */ + - (REC_N_NEW_EXTRA_BYTES - 2) + > free_space_zip / 2)) { + goto too_big; + } } LIMIT_OPTIMISTIC_INSERT_DEBUG(page_get_n_recs(page), diff --git a/storage/innodb_plugin/dict/dict0dict.c b/storage/innodb_plugin/dict/dict0dict.c index 56c71cefa05..9cd0f51d72b 100644 --- a/storage/innodb_plugin/dict/dict0dict.c +++ b/storage/innodb_plugin/dict/dict0dict.c @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1996, 2012, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1996, 2013, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -1415,6 +1415,10 @@ dict_index_too_big_for_tree( /* maximum allowed size of a node pointer record */ ulint page_ptr_max; + DBUG_EXECUTE_IF( + "ib_force_create_table", + return(FALSE);); + comp = dict_table_is_comp(table); zip_size = dict_table_zip_size(table); @@ -1429,7 +1433,10 @@ dict_index_too_big_for_tree( number in the page modification log. The maximum allowed node pointer size is half that. */ page_rec_max = page_zip_empty_size(new_index->n_fields, - zip_size) - 1; + zip_size); + if (page_rec_max) { + page_rec_max--; + } page_ptr_max = page_rec_max / 2; /* On a compressed page, there is a two-byte entry in the dense page directory for every record. But there diff --git a/storage/innodb_plugin/include/page0zip.ic b/storage/innodb_plugin/include/page0zip.ic index 75cc7a9fcc4..b5480604bdf 100644 --- a/storage/innodb_plugin/include/page0zip.ic +++ b/storage/innodb_plugin/include/page0zip.ic @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2005, 2009, Innobase Oy. All Rights Reserved. +Copyright (c) 2005, 2013, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -188,8 +188,8 @@ page_zip_rec_needs_ext( one record on an empty leaf page. Subtract 1 byte for the encoded heap number. Check also the available space on the uncompressed page. */ - return(rec_size - (REC_N_NEW_EXTRA_BYTES - 2) - >= (page_zip_empty_size(n_fields, zip_size) - 1) + return(rec_size - (REC_N_NEW_EXTRA_BYTES - 2 - 1) + >= page_zip_empty_size(n_fields, zip_size) || rec_size >= page_get_free_space_of_empty(TRUE) / 2); } From f31611c4c585d916697131446d2ad2928d4ad36f Mon Sep 17 00:00:00 2001 From: Venkatesh Duggirala Date: Thu, 24 Jan 2013 10:35:07 +0530 Subject: [PATCH 030/172] BUG#14798572: REMOVE UNUSED VARIABLE BINLOG_CAN_BE_CORRUPTED FROM MYSQL_BINLOG_SEND As part Bug #11747416 A DISK FULL MAKES BINARY LOG CORRUPT, reading the variable "binlog_can_be_corrupted" was removed In the existing code the value of this variable is only set, never read. And also this issue causing compiler warnings. So the variable is completely redundant and should be removed. sql/sql_repl.cc: Removing dead code --- sql/sql_repl.cc | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index e16ce15e512..15d0d5c90d5 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -452,7 +452,6 @@ void mysql_binlog_send(THD* thd, char* log_ident, my_off_t pos, mysql_mutex_t *log_lock; mysql_cond_t *log_cond; - bool binlog_can_be_corrupted= FALSE; #ifndef DBUG_OFF int left_events = max_binlog_dump_events; #endif @@ -621,8 +620,6 @@ impossible position"; (*packet)[EVENT_TYPE_OFFSET+ev_offset])); if ((*packet)[EVENT_TYPE_OFFSET+ev_offset] == FORMAT_DESCRIPTION_EVENT) { - binlog_can_be_corrupted= test((*packet)[FLAGS_OFFSET+ev_offset] & - LOG_EVENT_BINLOG_IN_USE_F); (*packet)[FLAGS_OFFSET+ev_offset] &= ~LOG_EVENT_BINLOG_IN_USE_F; /* mark that this event with "log_pos=0", so the slave @@ -711,34 +708,8 @@ impossible position"; }); if (event_type == FORMAT_DESCRIPTION_EVENT) { - binlog_can_be_corrupted= test((*packet)[FLAGS_OFFSET+ev_offset] & - LOG_EVENT_BINLOG_IN_USE_F); (*packet)[FLAGS_OFFSET+ev_offset] &= ~LOG_EVENT_BINLOG_IN_USE_F; } - else if (event_type == STOP_EVENT) - binlog_can_be_corrupted= FALSE; - - /* - Introduced this code to make the gcc 4.6.1 compiler happy. When - warnings are converted to errors, the compiler complains about - the fact that binlog_can_be_corrupted is defined but never used. - - We need to check if this is a dead code or if someone removed any - code by mistake. - - /Alfranio - */ - if (binlog_can_be_corrupted) - { - /* - Don't try to print out warning messages because this generates - erroneous messages in the error log and causes performance - problems. - - /Alfranio - */ - } - pos = my_b_tell(&log); if (RUN_HOOK(binlog_transmit, before_send_event, (thd, flags, packet, log_file_name, pos))) From 776df0a3660ebc724754b56a007345b3961e8a36 Mon Sep 17 00:00:00 2001 From: Venkata Sidagam Date: Thu, 24 Jan 2013 14:02:54 +0530 Subject: [PATCH 031/172] Bug #11752803 SERVER CRASHES IF MAX_CONNECTIONS DECREASED BELOW CERTAIN LEVEL Problem description: mysqld crashes when we update the max_connections variable to lesser value than the number of currently open connections. Analysis: The "alarm_queue.max_elements" size will be decided at the server start time and it will get modified if we change max_connections value. In the current scenario the value of "alarm_queue.max_elements" is decremented when the max_connections is set to 2. When updating the "alarm_queue.max_elements" value we are not updating "max_used_alarms" value. Hence, instead of getting the warning "thr_alarm queue is full" it is ending up in asserting the server at the time of inserting new elements in the queue. Fix: the fix is to dynamically increase the size of the alarm_queue. In order to do that, queue_insert_safe() should be used instead if queue_insert(). --- mysys/thr_alarm.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/mysys/thr_alarm.c b/mysys/thr_alarm.c index 6541fab138b..e2fc54c487e 100644 --- a/mysys/thr_alarm.c +++ b/mysys/thr_alarm.c @@ -52,6 +52,8 @@ static QUEUE alarm_queue; static uint max_used_alarms=0; pthread_t alarm_thread; +#define MY_THR_ALARM_QUEUE_EXTENT 10 + #ifdef USE_ALARM_THREAD static void *alarm_handler(void *arg); #define reschedule_alarms() pthread_cond_signal(&COND_alarm) @@ -74,8 +76,8 @@ void init_thr_alarm(uint max_alarms) DBUG_ENTER("init_thr_alarm"); alarm_aborted=0; next_alarm_expire_time= ~ (time_t) 0; - init_queue(&alarm_queue,max_alarms+1,offsetof(ALARM,expire_time),0, - compare_ulong,NullS); + init_queue_ex(&alarm_queue, max_alarms + 1, offsetof(ALARM,expire_time), 0, + compare_ulong, NullS, MY_THR_ALARM_QUEUE_EXTENT); sigfillset(&full_signal_set); /* Neaded to block signals */ pthread_mutex_init(&LOCK_alarm,MY_MUTEX_INIT_FAST); pthread_cond_init(&COND_alarm,NULL); @@ -127,7 +129,10 @@ void resize_thr_alarm(uint max_alarms) than max_alarms */ if (alarm_queue.elements < max_alarms) + { resize_queue(&alarm_queue,max_alarms+1); + max_used_alarms= alarm_queue.elements; + } pthread_mutex_unlock(&LOCK_alarm); } @@ -182,17 +187,6 @@ my_bool thr_alarm(thr_alarm_t *alrm, uint sec, ALARM *alarm_data) if (alarm_queue.elements >= max_used_alarms) { - if (alarm_queue.elements == alarm_queue.max_elements) - { - DBUG_PRINT("info", ("alarm queue full")); - fprintf(stderr,"Warning: thr_alarm queue is full\n"); - *alrm= 0; /* No alarm */ - pthread_mutex_unlock(&LOCK_alarm); -#ifndef USE_ONE_SIGNAL_HAND - pthread_sigmask(SIG_SETMASK,&old_mask,NULL); -#endif - DBUG_RETURN(1); - } max_used_alarms=alarm_queue.elements+1; } reschedule= (ulong) next_alarm_expire_time > (ulong) now + sec; @@ -216,7 +210,7 @@ my_bool thr_alarm(thr_alarm_t *alrm, uint sec, ALARM *alarm_data) alarm_data->alarmed=0; alarm_data->thread= current_my_thread_var->pthread_self; alarm_data->thread_id= current_my_thread_var->id; - queue_insert(&alarm_queue,(uchar*) alarm_data); + queue_insert_safe(&alarm_queue, (uchar*) alarm_data); /* Reschedule alarm if the current one has more than sec left */ if (reschedule) From 26f662be1c12b6cfddc33a88b33d2986f3d0da0f Mon Sep 17 00:00:00 2001 From: Venkata Sidagam Date: Thu, 24 Jan 2013 14:56:12 +0530 Subject: [PATCH 032/172] BUG#11908153 CRASH AND/OR VALGRIND ERRORS IN FIELD_BLOB::GET_KEY_IMAGE Backporting bug patch from 5.5 to 5.1. This fix is applicable to BUG#14362617 as well --- sql/field.h | 8 +++++++- sql/field_conv.cc | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/sql/field.h b/sql/field.h index ca23702fd8c..cc709bc0c9c 100644 --- a/sql/field.h +++ b/sql/field.h @@ -1824,7 +1824,13 @@ public: int store(longlong nr, bool unsigned_val); int store_decimal(const my_decimal *); uint size_of() const { return sizeof(*this); } - int reset(void) { return !maybe_null() || Field_blob::reset(); } + + /** + Non-nullable GEOMETRY types cannot have defaults, + but the underlying blob must still be reset. + */ + int reset(void) { return Field_blob::reset() || !maybe_null(); } + geometry_type get_geometry_type() { return geom_type; }; }; #endif /*HAVE_SPATIAL*/ diff --git a/sql/field_conv.cc b/sql/field_conv.cc index 782d41fc8f1..b97061be147 100644 --- a/sql/field_conv.cc +++ b/sql/field_conv.cc @@ -179,7 +179,10 @@ set_field_to_null_with_conversions(Field *field, bool no_conversions) ((Field_timestamp*) field)->set_time(); return 0; // Ok to set time to NULL } + + // Note: we ignore any potential failure of reset() here. field->reset(); + if (field == field->table->next_number_field) { field->table->auto_increment_field_not_null= FALSE; From 08a22ba1c9b0513d9a32509bbfe5b49261ee7676 Mon Sep 17 00:00:00 2001 From: Venkatesh Duggirala Date: Sat, 26 Jan 2013 15:03:01 +0530 Subject: [PATCH 033/172] Bug#16056813-MEMORY LEAK ON FILTERED SLAVE Due to not resetting a member (last_added) of Deferred events class inside a clean up function (Deferred_log_events::rewind), there is a memory leak on filtered slaves. Fix: Resetting last_added to NULL in rewind() function. sql/rpl_utility.cc: Resetting last_added to NULL to avoid memory leak --- sql/rpl_utility.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/sql/rpl_utility.cc b/sql/rpl_utility.cc index 8efb376b5b6..2643f2d6059 100644 --- a/sql/rpl_utility.cc +++ b/sql/rpl_utility.cc @@ -1117,6 +1117,7 @@ void Deferred_log_events::rewind() Log_event *ev= *(Log_event **) dynamic_array_ptr(&array, i); delete ev; } + last_added= NULL; if (array.elements > array.max_element) freeze_size(&array); reset_dynamic(&array); From 7e0901b97fa087e4458f32ffd165103f31a1fef8 Mon Sep 17 00:00:00 2001 From: Venkatesh Duggirala Date: Mon, 28 Jan 2013 14:41:54 +0530 Subject: [PATCH 034/172] Bug#16084594 USER_VAR ITEM IN 'LOAD FILE QUERY' WAS NOT PROPERLY QUOTED IN BINLOG FILE Problem: In load data file query, User variables are allowed inside "Into_list" and "Set_list". These user variables used inside these two lists are not properly guarded with backticks while server is writting into binlog. Hence user variable names like a` cannot be used in this context. Fix: Properly quote these variables while writting into binlog mysql-test/r/func_compress.result: changing result file mysql-test/r/variables.result: changing result file mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result: changing result file sql/item_func.cc: Quote the user variable items --- mysql-test/r/func_compress.result | 4 ++-- mysql-test/r/variables.result | 2 +- mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result | 4 ++-- sql/item_func.cc | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/mysql-test/r/func_compress.result b/mysql-test/r/func_compress.result index b4e61d0e4fc..37f7c475148 100644 --- a/mysql-test/r/func_compress.result +++ b/mysql-test/r/func_compress.result @@ -11,7 +11,7 @@ explain extended select uncompress(compress(@test_compress_string)); id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 select uncompress(compress((@test_compress_string))) AS `uncompress(compress(@test_compress_string))` +Note 1003 select uncompress(compress((@`test_compress_string`))) AS `uncompress(compress(@test_compress_string))` select uncompressed_length(compress(@test_compress_string))=length(@test_compress_string); uncompressed_length(compress(@test_compress_string))=length(@test_compress_string) 1 @@ -19,7 +19,7 @@ explain extended select uncompressed_length(compress(@test_compress_string))=len id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 select (uncompressed_length(compress((@test_compress_string))) = length((@test_compress_string))) AS `uncompressed_length(compress(@test_compress_string))=length(@test_compress_string)` +Note 1003 select (uncompressed_length(compress((@`test_compress_string`))) = length((@`test_compress_string`))) AS `uncompressed_length(compress(@test_compress_string))=length(@test_compress_string)` select uncompressed_length(compress(@test_compress_string)); uncompressed_length(compress(@test_compress_string)) 117 diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result index 8cff6e99d4f..858c2baf1d4 100644 --- a/mysql-test/r/variables.result +++ b/mysql-test/r/variables.result @@ -77,7 +77,7 @@ explain extended select @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3; id select_type table type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 select (@t1:=((@t2:=1) + (@t3:=4))) AS `@t1:=(@t2:=1)+@t3:=4`,(@t1) AS `@t1`,(@t2) AS `@t2`,(@t3) AS `@t3` +Note 1003 select (@t1:=((@t2:=1) + (@t3:=4))) AS `@t1:=(@t2:=1)+@t3:=4`,(@`t1`) AS `@t1`,(@`t2`) AS `@t2`,(@`t3`) AS `@t3` select @t5; @t5 1.23456 diff --git a/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result b/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result index d2f47e56c61..7f92744180c 100644 --- a/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result +++ b/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result @@ -631,7 +631,7 @@ master-bin.000001 # Query # # BEGIN master-bin.000001 # Intvar # # INSERT_ID=10 master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=# master-bin.000001 # Intvar # # INSERT_ID=10 -master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE `t4` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`a`, @b) SET `b`=((@b) + `bug27417`(2)) ;file_id=# +master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE `t4` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`a`, @`b`) SET `b`=((@`b`) + `bug27417`(2)) ;file_id=# master-bin.000001 # Query # # ROLLBACK /* the output must denote there is the query */; drop trigger trg_del_t2; @@ -869,7 +869,7 @@ master-bin.000001 # User var # # @`b`=_latin1 0x3135 COLLATE latin1_swedish_ci master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=# master-bin.000001 # Intvar # # INSERT_ID=10 master-bin.000001 # User var # # @`b`=_latin1 0x3135 COLLATE latin1_swedish_ci -master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE `t4` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`a`, @b) SET `b`=((@b) + `bug27417`(2)) ;file_id=# +master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE `t4` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`a`, @`b`) SET `b`=((@`b`) + `bug27417`(2)) ;file_id=# master-bin.000001 # Query # # ROLLBACK drop trigger trg_del_t2; drop table t1,t2,t3,t4,t5; diff --git a/sql/item_func.cc b/sql/item_func.cc index 21efaf83aa8..6cf78a38ded 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -4725,7 +4725,7 @@ enum Item_result Item_func_get_user_var::result_type() const void Item_func_get_user_var::print(String *str, enum_query_type query_type) { str->append(STRING_WITH_LEN("(@")); - str->append(name.str,name.length); + append_identifier(current_thd, str, name.str, name.length); str->append(')'); } @@ -4826,7 +4826,7 @@ my_decimal* Item_user_var_as_out_param::val_decimal(my_decimal *decimal_buffer) void Item_user_var_as_out_param::print(String *str, enum_query_type query_type) { str->append('@'); - str->append(name.str,name.length); + append_identifier(current_thd, str, name.str, name.length); } From d63f54c67d033968127319ec08d35f493684bccd Mon Sep 17 00:00:00 2001 From: Satya Bodapati Date: Mon, 28 Jan 2013 20:13:44 +0530 Subject: [PATCH 035/172] Bug#16183892 - INNODB PURGE BUFFERING IS NOT CRASH-SAFE With innodb_change_buffering enabled, Innodb buffers all modifications to secondary index leaf pages when the leaf pages are not in buffer pool. Crash InnoDB while an IBUF_OP_DELETE is being applied. Restart and note that the same record can be applied again which may lead to crash. Mark the change buffer record processed, so that it will not be merged again in case the server crashes between the following mtr_commit() and the subsequent mtr_commit() of deleting the change buffer record. Testcase: No testcase because it is difficult to get the timing right with the two asyncronous task purge and change buffering Approved by Marko. rb#1893 --- storage/innobase/ibuf/ibuf0ibuf.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/storage/innobase/ibuf/ibuf0ibuf.c b/storage/innobase/ibuf/ibuf0ibuf.c index 70af56b99f2..11505121fa2 100644 --- a/storage/innobase/ibuf/ibuf0ibuf.c +++ b/storage/innobase/ibuf/ibuf0ibuf.c @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1997, 2012, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 1997, 2013, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -4685,6 +4685,16 @@ loop: == page_no); ut_ad(ibuf_rec_get_space(&mtr, rec) == space); + /* Mark the change buffer record processed, + so that it will not be merged again in case + the server crashes between the following + mtr_commit() and the subsequent mtr_commit() + of deleting the change buffer record. */ + + btr_cur_set_deleted_flag_for_ibuf( + btr_pcur_get_rec(&pcur), NULL, + TRUE, &mtr); + btr_pcur_store_position(&pcur, &mtr); ibuf_btr_pcur_commit_specify_mtr(&pcur, &mtr); From d1378565bba59726ae3f4d47d0709e68d77110ed Mon Sep 17 00:00:00 2001 From: Nuno Carvalho Date: Mon, 28 Jan 2013 19:05:09 +0000 Subject: [PATCH 036/172] BUG#16200555: EMPTY NAME FOR USER VARIABLE IS ALLOWED AND BREAKS STATEMENT BINARY LOGGING On a previous fix, user variables with zero length name were incorrectly considered as event corruption, despite that them are allowed by server. Fix this wrong assumption by allowing again user variables with zero length on binary log. --- sql/log_event.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sql/log_event.cc b/sql/log_event.cc index 542b5e2dc60..8abd95bba0a 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -5729,10 +5729,9 @@ User_var_log_event(const char* buf, uint event_len, /* We don't know yet is_null value, so we must assume that name_len may have the bigger value possible, is_null= True and there is no - payload for val. + payload for val, or even that name_len is 0. */ - if (0 == name_len || - !valid_buffer_range(name_len, buf_start, name, + if (!valid_buffer_range(name_len, buf_start, name, event_len - UV_VAL_IS_NULL)) { error= true; From 265814f2ae1ddf8eb089ce703a58b9a43b2bc1f9 Mon Sep 17 00:00:00 2001 From: Neeraj Bisht Date: Tue, 29 Jan 2013 10:05:00 +0530 Subject: [PATCH 037/172] Bug#16208709 - CRASH IN GET_SEL_ARG_FOR_KEYPART ON SELECT DISTINCT ON COL WITH COMPOSITE INDEX This problem is caused by the patch for the bug#11751794. While checking for the keypart covering non grouping attribute. we are not checking whether the root node of the SEL_ARG* tree for the index have any cvalue or not. --- sql/opt_range.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 4e67727462c..ae6878c6756 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -9870,6 +9870,8 @@ get_sel_arg_for_keypart(Field *nga_field, SEL_ARG *keypart_tree, SEL_ARG **cur_range) { + if(keypart_tree == NULL) + return false; if(keypart_tree->field->eq(nga_field)) { /* From ed15e9c2700f81529f7e223e22c28065d103d6de Mon Sep 17 00:00:00 2001 From: "Krunal Bauskar krunal.bauskar@oracle.com" Date: Wed, 30 Jan 2013 08:17:24 +0530 Subject: [PATCH 038/172] - BUG#1608883: KILLING A QUERY INSIDE INNODB CAUSES IT TO EVENTUALLY CRASH WITH AN ASSERTION Correcting the build failure that was caused because of changes checked-in to below mentioned revision. (Changes: DEBUG_SYNC_C should be disabled for innodb_plugin under Windows enviornment. Note: only for innodb_plugin.) revno: 3915 revision-id: krunal.bauskar@oracle.com-20130114051951-ang92lkirop37431 parent: nisha.gopalakrishnan@oracle.com-20130112054337-gk5pmzf30d2imuw7 committer: Krunal Bauskar krunal.bauskar@oracle.com branch nick: mysql-5.1 timestamp: Mon 2013-01-14 10:49:51 +0530 --- storage/innodb_plugin/row/row0sel.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/storage/innodb_plugin/row/row0sel.c b/storage/innodb_plugin/row/row0sel.c index d2e83450860..3b1934edc62 100644 --- a/storage/innodb_plugin/row/row0sel.c +++ b/storage/innodb_plugin/row/row0sel.c @@ -57,8 +57,13 @@ Created 12/19/1997 Heikki Tuuri #include "read0read.h" #include "buf0lru.h" #include "ha_prototypes.h" +#ifdef __WIN__ +/* error LNK2001: unresolved external symbol _debug_sync_C_callback_ptr */ +# define DEBUG_SYNC_C(dummy) ((void) 0) +#else #include "m_string.h" /* for my_sys.h */ #include "my_sys.h" /* DEBUG_SYNC_C */ +#endif /* Maximum number of rows to prefetch; MySQL interface has another parameter */ #define SEL_MAX_N_PREFETCH 16 From db107cb36b9d2e0057188a887a220a859c756be1 Mon Sep 17 00:00:00 2001 From: Aditya A Date: Wed, 30 Jan 2013 10:53:43 +0530 Subject: [PATCH 039/172] Bug#14756795 SELECT FROM NEW INNODB I_S TABLES CRASHES SERVER WITH --SKIP-INNODB Description ----------- If the server is started with skip-innodb or InnoDB otherwise fails to start, any one of these queries will crash the server: For (5.5) SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE; SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU; SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS; In (5.6+) ,following queries will also crash the server. SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_DATAFILES; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES; FIX ---- When Innodb is not active we must prevent it from processing these tables,so we return a warning saying that innodb is not active. Approved by marko (http://rb.no.oracle.com/rb/r/1891) --- storage/innobase/handler/i_s.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc index f4916b48641..7be881b8d90 100644 --- a/storage/innobase/handler/i_s.cc +++ b/storage/innobase/handler/i_s.cc @@ -2295,6 +2295,7 @@ i_s_innodb_buffer_stats_fill_table( buf_pool_info_t* pool_info; DBUG_ENTER("i_s_innodb_buffer_fill_general"); + RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name); /* Only allow the PROCESS privilege holder to access the stats */ if (check_global_access(thd, PROCESS_ACL)) { @@ -2911,6 +2912,7 @@ i_s_innodb_fill_buffer_pool( mem_heap_t* heap; DBUG_ENTER("i_s_innodb_fill_buffer_pool"); + RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name); heap = mem_heap_create(10000); @@ -3480,6 +3482,7 @@ i_s_innodb_fill_buffer_lru( ulint lru_len; DBUG_ENTER("i_s_innodb_fill_buffer_lru"); + RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name); /* Obtain buf_pool mutex before allocate info_buffer, since UT_LIST_GET_LEN(buf_pool->LRU) could change */ From 16bf552e3eb2cd28306fc84c3406875ece708495 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 30 Jan 2013 14:32:52 +0530 Subject: [PATCH 040/172] From e1ee9581cb4a4cac085d0ad6eedadb73de187deb Mon Sep 17 00:00:00 2001 From: Chaithra Gopalareddy Date: Thu, 31 Jan 2013 06:39:15 +0530 Subject: [PATCH 041/172] Bug#14096619: UNABLE TO RESTORE DATABASE DUMP Backport of Bug#13581962 mysql-test/r/cast.result: Added test result for Bug#13581962,Bug#14096619 mysql-test/t/cast.test: Added test case for Bug#13581962,Bug#14096619 sql/item_func.h: limit max length by MY_INT64_NUM_DECIMAL_DIGITS --- mysql-test/r/cast.result | 18 ++++++++++++++++++ mysql-test/t/cast.test | 13 +++++++++++++ sql/item_func.h | 17 ++++++++++------- 3 files changed, 41 insertions(+), 7 deletions(-) diff --git a/mysql-test/r/cast.result b/mysql-test/r/cast.result index d7a7503707b..fc0d79e9568 100644 --- a/mysql-test/r/cast.result +++ b/mysql-test/r/cast.result @@ -477,4 +477,22 @@ WHERE CAST(a as BINARY)=x'62736D697468' AND CAST(a AS BINARY)=x'65736D697468'; a DROP TABLE t1; +# +# Bug#13581962 HIGH MEMORY USAGE ATTEMPT, THEN CRASH WITH +# LONGTEXT, UNION, USER VARIABLE +# Bug#14096619 UNABLE TO RESTORE DATABASE DUMP +# +CREATE TABLE t1 AS SELECT CONCAT(CAST(REPEAT('9', 1000) AS SIGNED)), +CONCAT(CAST(REPEAT('9', 1000) AS UNSIGNED)); +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999' +Warning 1292 Truncated incorrect INTEGER value: '99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999' +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `CONCAT(CAST(REPEAT('9', 1000) AS SIGNED))` varbinary(21) NOT NULL DEFAULT '', + `CONCAT(CAST(REPEAT('9', 1000) AS UNSIGNED))` varbinary(21) NOT NULL DEFAULT '' +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +# End of test for Bug#13581962, Bug#14096619 End of 5.1 tests diff --git a/mysql-test/t/cast.test b/mysql-test/t/cast.test index 4474736200c..27eb5e88c54 100644 --- a/mysql-test/t/cast.test +++ b/mysql-test/t/cast.test @@ -309,4 +309,17 @@ WHERE CAST(a as BINARY)=x'62736D697468' DROP TABLE t1; +--echo # +--echo # Bug#13581962 HIGH MEMORY USAGE ATTEMPT, THEN CRASH WITH +--echo # LONGTEXT, UNION, USER VARIABLE +--echo # Bug#14096619 UNABLE TO RESTORE DATABASE DUMP +--echo # + +CREATE TABLE t1 AS SELECT CONCAT(CAST(REPEAT('9', 1000) AS SIGNED)), + CONCAT(CAST(REPEAT('9', 1000) AS UNSIGNED)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +--echo # End of test for Bug#13581962, Bug#14096619 + --echo End of 5.1 tests diff --git a/sql/item_func.h b/sql/item_func.h index ec410ed3d3d..d769ceb0179 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -403,12 +403,17 @@ public: class Item_func_signed :public Item_int_func { public: - Item_func_signed(Item *a) :Item_int_func(a) {} + Item_func_signed(Item *a) :Item_int_func(a) + { + unsigned_flag= 0; + } const char *func_name() const { return "cast_as_signed"; } longlong val_int(); longlong val_int_from_str(int *error); void fix_length_and_dec() - { max_length=args[0]->max_length; unsigned_flag=0; } + { + max_length= min(args[0]->max_length,MY_INT64_NUM_DECIMAL_DIGITS); + } virtual void print(String *str, enum_query_type query_type); uint decimal_precision() const { return args[0]->decimal_precision(); } }; @@ -417,13 +422,11 @@ public: class Item_func_unsigned :public Item_func_signed { public: - Item_func_unsigned(Item *a) :Item_func_signed(a) {} - const char *func_name() const { return "cast_as_unsigned"; } - void fix_length_and_dec() + Item_func_unsigned(Item *a) :Item_func_signed(a) { - max_length= min(args[0]->max_length, DECIMAL_MAX_PRECISION + 2); - unsigned_flag=1; + unsigned_flag= 1; } + const char *func_name() const { return "cast_as_unsigned"; } longlong val_int(); virtual void print(String *str, enum_query_type query_type); }; From c3d2803c43d4076428763c50632217cb70c751d5 Mon Sep 17 00:00:00 2001 From: Yasufumi Kinoshita Date: Thu, 31 Jan 2013 12:42:43 +0900 Subject: [PATCH 042/172] Bug #16220051 : INNODB_BUG12400341 FAILS ON VALGRIND WITH TOO MANY ACTIVE CONCURRENT TRANSACTION innodb_bug12400341.test is disabled for valgrind daily test. It might be affected by the previous test's undo slots existing, because of slower execution. --- mysql-test/suite/innodb/t/innodb_bug12400341.test | 4 ++++ mysql-test/suite/innodb_plugin/t/innodb_bug12400341.test | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/mysql-test/suite/innodb/t/innodb_bug12400341.test b/mysql-test/suite/innodb/t/innodb_bug12400341.test index 2ab1be81f6d..ab69e20c495 100644 --- a/mysql-test/suite/innodb/t/innodb_bug12400341.test +++ b/mysql-test/suite/innodb/t/innodb_bug12400341.test @@ -7,6 +7,10 @@ if (`select count(*)=0 from information_schema.global_variables where variable_n --skip Test requires InnoDB built with UNIV_DEBUG definition. } +# Don't test under valgrind, undo slots of the previous test might exist still +# and cause unstable result. +--source include/not_valgrind.inc + call mtr.add_suppression("InnoDB: Warning: cannot find a free slot for an undo log. Do you have too"); --disable_query_log diff --git a/mysql-test/suite/innodb_plugin/t/innodb_bug12400341.test b/mysql-test/suite/innodb_plugin/t/innodb_bug12400341.test index b9e40e0dff3..2ecf30edfa7 100644 --- a/mysql-test/suite/innodb_plugin/t/innodb_bug12400341.test +++ b/mysql-test/suite/innodb_plugin/t/innodb_bug12400341.test @@ -7,6 +7,10 @@ if (`select count(*)=0 from information_schema.global_variables where variable_n --skip Test requires InnoDB built with UNIV_DEBUG definition. } +# Don't test under valgrind, undo slots of the previous test might exist still +# and cause unstable result. +--source include/not_valgrind.inc + call mtr.add_suppression("InnoDB: Warning: cannot find a free slot for an undo log. Do you have too"); --disable_query_log From 8500944765487e8fa3f9d635e63b190dc076950e Mon Sep 17 00:00:00 2001 From: Nisha Gopalakrishnan Date: Fri, 1 Feb 2013 09:49:27 +0530 Subject: [PATCH 043/172] BUG#16207679: MISSING ERROR WHEN RESIGNAL TO MYSQL_ERROR=5 Analysis: -------- As part of the fix for Bug#11757464, the 'out of memory' error condition was not pushed to the diagnostic area as it requires memory allocation. However in cases of SIGNAL/RESIGNAL 'out of memory' error, the server may not be out of memory. Hence it would be good to report the error in such cases. Fix: --- Push only non fatal 'out of memory' errors to the diagnostic area. Since SIGNAL/RESIGNAL of 'out of memory' error may not be fatal, the error is reported. --- sql/sql_class.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 556e7d66447..effdfc4d6d6 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -1137,10 +1137,12 @@ MYSQL_ERROR* THD::raise_condition(uint sql_errno, query_cache_abort(&query_cache_tls); /* - Avoid pushing a condition for out of memory errors as this will require - memory allocation and therefore might fail. + Avoid pushing a condition for fatal out of memory errors as this will + require memory allocation and therefore might fail. Non fatal out of + memory errors can occur if raised by SIGNAL/RESIGNAL statement. */ - if (sql_errno != EE_OUTOFMEMORY && sql_errno != ER_OUTOFMEMORY) + if (!(is_fatal_error && (sql_errno == EE_OUTOFMEMORY || + sql_errno == ER_OUTOFMEMORY))) { cond= warning_info->push_warning(this, sql_errno, sqlstate, level, msg); } From 49e4ed1fde3be9a1c6063a4099e42df4947412ca Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 1 Feb 2013 19:53:20 +0530 Subject: [PATCH 044/172] BUG #16190704 - MTR STILL LOSES THE FAILED RUN LOGS AT RETRY-FAIL --- mysql-test/mysql-test-run.pl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 0221bb61e8c..1cde5548999 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -697,9 +697,11 @@ sub run_test_server ($$$) { mtr_report("\nRetrying test $tname, ". "attempt($retries/$opt_retry)...\n"); #saving the log file as filename.failed in case of retry - my $worker_logdir= $result->{savedir}; - my $log_file_name=dirname($worker_logdir)."/".$result->{shortname}.".log"; - rename $log_file_name,$log_file_name.".failed"; + if ( $result->is_failed() ) { + my $worker_logdir= $result->{savedir}; + my $log_file_name=dirname($worker_logdir)."/".$result->{shortname}.".log"; + rename $log_file_name,$log_file_name.".failed"; + } delete($result->{result}); $result->{retries}= $retries+1; $result->write_test($sock, 'TESTCASE'); From 50c27a1492e149c2e5a2865ee71ae084230b0b9d Mon Sep 17 00:00:00 2001 From: Inaam Rana Date: Fri, 1 Feb 2013 09:47:16 -0500 Subject: [PATCH 045/172] Bug#16249505 INNODB REPORTS THAT IT'S GOING TO WAIT FOR I/O BUT THE I/O IS ASYNC rb://1934 approved by: Mikael Ronstrom (over email) When submitting AIO read request don't signal that the thread is about to wait on DISKIO --- storage/innobase/buf/buf0rea.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/storage/innobase/buf/buf0rea.c b/storage/innobase/buf/buf0rea.c index 40550186191..d12fd3fce31 100644 --- a/storage/innobase/buf/buf0rea.c +++ b/storage/innobase/buf/buf0rea.c @@ -177,7 +177,10 @@ buf_read_page_low( ut_ad(buf_page_in_file(bpage)); - thd_wait_begin(NULL, THD_WAIT_DISKIO); + if (sync) { + thd_wait_begin(NULL, THD_WAIT_DISKIO); + } + if (zip_size) { *err = fil_io(OS_FILE_READ | wake_later, sync, space, zip_size, offset, 0, zip_size, @@ -189,7 +192,10 @@ buf_read_page_low( sync, space, 0, offset, 0, UNIV_PAGE_SIZE, ((buf_block_t*) bpage)->frame, bpage); } - thd_wait_end(NULL); + + if (sync) { + thd_wait_end(NULL); + } if (*err == DB_TABLESPACE_DELETED) { buf_read_page_handle_error(bpage); From e15a51363dec2c7b92fef406190e33dbb453bad3 Mon Sep 17 00:00:00 2001 From: Thayumanavar Date: Tue, 5 Feb 2013 11:06:38 +0530 Subject: [PATCH 046/172] BUG#16196591 - CLIENTS CANNOT CONNECT TO MYSQL PROBLEM: When large number of connections are continuously made with wait_timeout of 600 seconds for some hours, some connections remain after wait_timeout expired and also new connections get struck under the configuration and the scenario reported in bug#16196591. FIX: The cause of this bug is the issue identified and fixed in the BUG#16088658 in 5.6.Also LOCK_thread_count contention issue fixed in BUG#15921866 in 5.6 need to be in 5.5 as well. Since the issue is not reproducible, it has been verified at customer configuration the issue could not be reproduced after a 48-hour test with a non-debug build which includes the above two fixes backported. --- sql/mysqld.cc | 9 ++++++++- sql/mysqld.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index fb3832d438a..db283324761 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -640,6 +640,7 @@ SHOW_COMP_OPTION have_profiling; pthread_key(MEM_ROOT**,THR_MALLOC); pthread_key(THD*, THR_THD); +mysql_mutex_t LOCK_thread_created; mysql_mutex_t LOCK_thread_count; mysql_mutex_t LOCK_status, LOCK_error_log, LOCK_uuid_generator, @@ -1574,6 +1575,7 @@ static void clean_up_mutexes() { mysql_rwlock_destroy(&LOCK_grant); mysql_mutex_destroy(&LOCK_thread_count); + mysql_mutex_destroy(&LOCK_thread_created); mysql_mutex_destroy(&LOCK_status); mysql_mutex_destroy(&LOCK_delayed_insert); mysql_mutex_destroy(&LOCK_delayed_status); @@ -3542,6 +3544,7 @@ You should consider changing lower_case_table_names to 1 or 2", static int init_thread_environment() { + mysql_mutex_init(key_LOCK_thread_created, &LOCK_thread_created, MY_MUTEX_INIT_FAST); mysql_mutex_init(key_LOCK_thread_count, &LOCK_thread_count, MY_MUTEX_INIT_FAST); mysql_mutex_init(key_LOCK_status, &LOCK_status, MY_MUTEX_INIT_FAST); mysql_mutex_init(key_LOCK_delayed_insert, @@ -4950,7 +4953,9 @@ static bool read_init_file(char *file_name) */ void inc_thread_created(void) { + mysql_mutex_lock(&LOCK_thread_created); thread_created++; + mysql_mutex_unlock(&LOCK_thread_created); } #ifndef EMBEDDED_LIBRARY @@ -7815,6 +7820,7 @@ PSI_mutex_key key_BINLOG_LOCK_index, key_BINLOG_LOCK_prep_xids, key_LOCK_error_messages, key_LOG_INFO_lock, key_LOCK_thread_count, key_PARTITION_LOCK_auto_inc; PSI_mutex_key key_RELAYLOG_LOCK_index; +PSI_mutex_key key_LOCK_thread_created; static PSI_mutex_info all_server_mutexes[]= { @@ -7867,7 +7873,8 @@ static PSI_mutex_info all_server_mutexes[]= { &key_LOCK_error_messages, "LOCK_error_messages", PSI_FLAG_GLOBAL}, { &key_LOG_INFO_lock, "LOG_INFO::lock", 0}, { &key_LOCK_thread_count, "LOCK_thread_count", PSI_FLAG_GLOBAL}, - { &key_PARTITION_LOCK_auto_inc, "HA_DATA_PARTITION::LOCK_auto_inc", 0} + { &key_PARTITION_LOCK_auto_inc, "HA_DATA_PARTITION::LOCK_auto_inc", 0}, + { &key_LOCK_thread_created, "LOCK_thread_created", PSI_FLAG_GLOBAL } }; PSI_rwlock_key key_rwlock_LOCK_grant, key_rwlock_LOCK_logger, diff --git a/sql/mysqld.h b/sql/mysqld.h index 632bcfe975f..2857094dba3 100644 --- a/sql/mysqld.h +++ b/sql/mysqld.h @@ -257,6 +257,7 @@ extern PSI_mutex_key key_RELAYLOG_LOCK_index; extern PSI_rwlock_key key_rwlock_LOCK_grant, key_rwlock_LOCK_logger, key_rwlock_LOCK_sys_init_connect, key_rwlock_LOCK_sys_init_slave, key_rwlock_LOCK_system_variables_hash, key_rwlock_query_cache_query_lock; +extern PSI_mutex_key key_LOCK_thread_created; #ifdef HAVE_MMAP extern PSI_cond_key key_PAGE_cond, key_COND_active, key_COND_pool; From 6823ac913e1a3afa43952f37124a59e4dce2ecb9 Mon Sep 17 00:00:00 2001 From: Ravinder Thakur Date: Wed, 6 Feb 2013 13:52:32 +0530 Subject: [PATCH 047/172] Bug#14711808 MSI INSTALLATION / UPGRADE CAN CORRUPT EXISTING INSTALLATION Currently MySQL MSI installer on Windows installs MySQL in "per user" mode. It means that if a Windows machine has multiple users, they each can install MySQL independently. However the default path of MySQL is "C:\Program Files (x86)\MySQL\" and when two users install MySQL on same machine, the installation by second user just overwrites the MySQL files. This default shared location leads to the issue where if the second user uninstalls MySQL, the installation files are removed for the first user as well. In this fix, we are now making the default installation "per machine". It means that when MySQL is installed with defaults options, all users can see the shortcuts for MySQL in start menu(since installations is for all users). Also when any user relaunches the installer, it will consider that action uninstallation rather than installation for that user. There are command line options in installer that can be used to undo the "per machine" installation but will not consider that scenario.MySQL is a server product and it does not make a lot of sense to install it differently for each user. --- packaging/WiX/mysql_server.wxs.in | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packaging/WiX/mysql_server.wxs.in b/packaging/WiX/mysql_server.wxs.in index 370830d82db..4c2a856782c 100644 --- a/packaging/WiX/mysql_server.wxs.in +++ b/packaging/WiX/mysql_server.wxs.in @@ -34,8 +34,9 @@ Languages='1033' Compressed='yes' SummaryCodepage='1252' - Platform='@Platform@'/> - + Platform='@Platform@' + InstallScope="perMachine"/> + From 6f83811d251406530fd0ff844c639d22fa3db126 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 6 Feb 2013 13:49:56 -0600 Subject: [PATCH 048/172] Bug#16263506 - INNODB; USE ABORT() ON ALL PLATFORMS INSTEAD OF DEREFERENCING UT_DBG_NULL_PTR The abort() call is standard C but InnoDB only uses it in GCC environments. UT_DBG_USE_ABORT is not defined the code crashed by dereferencing a null pointer instead of calling abort(). Other code throughout MySQL including ndb, sql, mysys and other places call abort() directly. This bug also affects innodb.innodb_bug14147491.test which fails randomly on windows because of this issue. Approved by marko in http://rb.no.oracle.com/rb/r/1936/ --- storage/innobase/include/ut0dbg.h | 40 ------------------------------- storage/innobase/sync/sync0arr.c | 4 ---- storage/innobase/ut/ut0dbg.c | 32 ------------------------- 3 files changed, 76 deletions(-) diff --git a/storage/innobase/include/ut0dbg.h b/storage/innobase/include/ut0dbg.h index 07730176d81..4913b357768 100644 --- a/storage/innobase/include/ut0dbg.h +++ b/storage/innobase/include/ut0dbg.h @@ -55,47 +55,8 @@ ut_dbg_assertion_failed( ulint line) /*!< in: line number of the assertion */ UNIV_COLD __attribute__((nonnull(2))); -#if defined(__WIN__) || defined(__INTEL_COMPILER) -# undef UT_DBG_USE_ABORT -#elif defined(__GNUC__) && (__GNUC__ > 2) -# define UT_DBG_USE_ABORT -#endif - -#ifndef UT_DBG_USE_ABORT -/** A null pointer that will be dereferenced to trigger a memory trap */ -extern ulint* ut_dbg_null_ptr; -#endif - -#if defined(UNIV_SYNC_DEBUG) || !defined(UT_DBG_USE_ABORT) -/** If this is set to TRUE by ut_dbg_assertion_failed(), all threads -will stop at the next ut_a() or ut_ad(). */ -extern ibool ut_dbg_stop_threads; - -/*************************************************************//** -Stop a thread after assertion failure. */ -UNIV_INTERN -void -ut_dbg_stop_thread( -/*===============*/ - const char* file, - ulint line); -#endif - -#ifdef UT_DBG_USE_ABORT /** Abort the execution. */ # define UT_DBG_PANIC abort() -/** Stop threads (null operation) */ -# define UT_DBG_STOP do {} while (0) -#else /* UT_DBG_USE_ABORT */ -/** Abort the execution. */ -# define UT_DBG_PANIC \ - if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = NULL -/** Stop threads in ut_a(). */ -# define UT_DBG_STOP do \ - if (UNIV_UNLIKELY(ut_dbg_stop_threads)) { \ - ut_dbg_stop_thread(__FILE__, (ulint) __LINE__); \ - } while (0) -#endif /* UT_DBG_USE_ABORT */ /** Abort execution if EXPR does not evaluate to nonzero. @param EXPR assertion expression that should hold */ @@ -105,7 +66,6 @@ ut_dbg_stop_thread( __FILE__, (ulint) __LINE__); \ UT_DBG_PANIC; \ } \ - UT_DBG_STOP; \ } while (0) /** Abort execution. */ diff --git a/storage/innobase/sync/sync0arr.c b/storage/innobase/sync/sync0arr.c index b0c337dc9d7..b2778184335 100644 --- a/storage/innobase/sync/sync0arr.c +++ b/storage/innobase/sync/sync0arr.c @@ -604,10 +604,6 @@ sync_array_deadlock_step( new = sync_array_find_thread(arr, thread); if (UNIV_UNLIKELY(new == start)) { - /* Stop running of other threads */ - - ut_dbg_stop_threads = TRUE; - /* Deadlock */ fputs("########################################\n" "DEADLOCK of threads detected!\n", stderr); diff --git a/storage/innobase/ut/ut0dbg.c b/storage/innobase/ut/ut0dbg.c index 53ed4a53044..a440b72d32a 100644 --- a/storage/innobase/ut/ut0dbg.c +++ b/storage/innobase/ut/ut0dbg.c @@ -35,16 +35,6 @@ Created 1/30/1994 Heikki Tuuri UNIV_INTERN ulint ut_dbg_zero = 0; #endif -#if defined(UNIV_SYNC_DEBUG) || !defined(UT_DBG_USE_ABORT) -/** If this is set to TRUE by ut_dbg_assertion_failed(), all threads -will stop at the next ut_a() or ut_ad(). */ -UNIV_INTERN ibool ut_dbg_stop_threads = FALSE; -#endif -#ifndef UT_DBG_USE_ABORT -/** A null pointer that will be dereferenced to trigger a memory trap */ -UNIV_INTERN ulint* ut_dbg_null_ptr = NULL; -#endif - /*************************************************************//** Report a failed assertion. */ UNIV_INTERN @@ -80,30 +70,8 @@ ut_dbg_assertion_failed( "InnoDB: corruption in the InnoDB tablespace. Please refer to\n" "InnoDB: " REFMAN "forcing-innodb-recovery.html\n" "InnoDB: about forcing recovery.\n", stderr); -#if defined(UNIV_SYNC_DEBUG) || !defined(UT_DBG_USE_ABORT) - ut_dbg_stop_threads = TRUE; -#endif } -#if defined(UNIV_SYNC_DEBUG) || !defined(UT_DBG_USE_ABORT) -/*************************************************************//** -Stop a thread after assertion failure. */ -UNIV_INTERN -void -ut_dbg_stop_thread( -/*===============*/ - const char* file, - ulint line) -{ -#ifndef UNIV_HOTBACKUP - fprintf(stderr, "InnoDB: Thread %lu stopped in file %s line %lu\n", - os_thread_pf(os_thread_get_curr_id()), - innobase_basename(file), line); - os_thread_sleep(1000000000); -#endif /* !UNIV_HOTBACKUP */ -} -#endif - #ifdef UNIV_COMPILE_TEST_FUNCS #include From 2df2e2617cc75ad532e59a294672f3aab071defe Mon Sep 17 00:00:00 2001 From: Mattias Jonsson Date: Mon, 4 Feb 2013 14:09:48 +0100 Subject: [PATCH 049/172] post-push test result update for bug#14521864. --- ...ition_change_from_range_to_hash_key.result | 24 ++--- .../engines/funcs/r/tc_partition_key.result | 96 +++++++++---------- .../funcs/r/tc_partition_linear_key.result | 96 +++++++++---------- .../r/tc_partition_reorg_hash_key.result | 96 +++++++++---------- 4 files changed, 156 insertions(+), 156 deletions(-) diff --git a/mysql-test/suite/engines/funcs/r/tc_partition_change_from_range_to_hash_key.result b/mysql-test/suite/engines/funcs/r/tc_partition_change_from_range_to_hash_key.result index bbaaeea8af7..07010138d40 100644 --- a/mysql-test/suite/engines/funcs/r/tc_partition_change_from_range_to_hash_key.result +++ b/mysql-test/suite/engines/funcs/r/tc_partition_change_from_range_to_hash_key.result @@ -412,7 +412,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ ALTER TABLE t1 COALESCE PARTITION 2; SELECT * FROM t1 ORDER BY c1; @@ -434,7 +434,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 3 */ DROP TABLE t1; SHOW TABLES; @@ -475,7 +475,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ ALTER TABLE t1 COALESCE PARTITION 2; SELECT * FROM t1 ORDER BY c1; @@ -497,7 +497,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 3 */ DROP TABLE t1; SHOW TABLES; @@ -538,7 +538,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ ALTER TABLE t1 COALESCE PARTITION 2; SELECT * FROM t1 ORDER BY c1; @@ -560,7 +560,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 3 */ DROP TABLE t1; SHOW TABLES; @@ -601,7 +601,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ ALTER TABLE t1 COALESCE PARTITION 2; SELECT * FROM t1 ORDER BY c1; @@ -623,7 +623,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 3 */ DROP TABLE t1; SHOW TABLES; @@ -664,7 +664,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ ALTER TABLE t1 COALESCE PARTITION 2; SELECT * FROM t1 ORDER BY c1; @@ -686,7 +686,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 3 */ DROP TABLE t1; SHOW TABLES; @@ -727,7 +727,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ ALTER TABLE t1 COALESCE PARTITION 2; SELECT * FROM t1 ORDER BY c1; @@ -749,7 +749,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 3 */ DROP TABLE t1; SHOW TABLES; diff --git a/mysql-test/suite/engines/funcs/r/tc_partition_key.result b/mysql-test/suite/engines/funcs/r/tc_partition_key.result index 309ddfe2bd9..0bd1df6d995 100644 --- a/mysql-test/suite/engines/funcs/r/tc_partition_key.result +++ b/mysql-test/suite/engines/funcs/r/tc_partition_key.result @@ -9,7 +9,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -24,7 +24,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -39,7 +39,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -54,7 +54,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -69,7 +69,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -84,7 +84,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -99,7 +99,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -114,7 +114,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -129,7 +129,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -144,7 +144,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -159,7 +159,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -174,7 +174,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -189,7 +189,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -204,7 +204,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -219,7 +219,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -234,7 +234,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -249,7 +249,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -264,7 +264,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -279,7 +279,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -294,7 +294,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -309,7 +309,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -324,7 +324,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -339,7 +339,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -354,7 +354,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -369,7 +369,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -384,7 +384,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -399,7 +399,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -414,7 +414,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -429,7 +429,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -444,7 +444,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -459,7 +459,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -474,7 +474,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -489,7 +489,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -504,7 +504,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -519,7 +519,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -534,7 +534,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -549,7 +549,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -564,7 +564,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -579,7 +579,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -594,7 +594,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -609,7 +609,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -624,7 +624,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -639,7 +639,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -654,7 +654,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -669,7 +669,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -684,7 +684,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -699,7 +699,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -714,7 +714,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; diff --git a/mysql-test/suite/engines/funcs/r/tc_partition_linear_key.result b/mysql-test/suite/engines/funcs/r/tc_partition_linear_key.result index ae543da271c..791787ac581 100644 --- a/mysql-test/suite/engines/funcs/r/tc_partition_linear_key.result +++ b/mysql-test/suite/engines/funcs/r/tc_partition_linear_key.result @@ -9,7 +9,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -24,7 +24,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -39,7 +39,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -54,7 +54,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -69,7 +69,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -84,7 +84,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -99,7 +99,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -114,7 +114,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -129,7 +129,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -144,7 +144,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -159,7 +159,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -174,7 +174,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -189,7 +189,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -204,7 +204,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -219,7 +219,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -234,7 +234,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -249,7 +249,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -264,7 +264,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -279,7 +279,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -294,7 +294,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -309,7 +309,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -324,7 +324,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -339,7 +339,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -354,7 +354,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -369,7 +369,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -384,7 +384,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -399,7 +399,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -414,7 +414,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -429,7 +429,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -444,7 +444,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -459,7 +459,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -474,7 +474,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -489,7 +489,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -504,7 +504,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -519,7 +519,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -534,7 +534,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -549,7 +549,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -564,7 +564,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -579,7 +579,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -594,7 +594,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -609,7 +609,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -624,7 +624,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -639,7 +639,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -654,7 +654,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -669,7 +669,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -684,7 +684,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -699,7 +699,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -714,7 +714,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; diff --git a/mysql-test/suite/engines/funcs/r/tc_partition_reorg_hash_key.result b/mysql-test/suite/engines/funcs/r/tc_partition_reorg_hash_key.result index 3556bcf1e4f..083bbdebabb 100644 --- a/mysql-test/suite/engines/funcs/r/tc_partition_reorg_hash_key.result +++ b/mysql-test/suite/engines/funcs/r/tc_partition_reorg_hash_key.result @@ -487,7 +487,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -509,7 +509,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -531,7 +531,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -539,7 +539,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -565,7 +565,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -587,7 +587,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -609,7 +609,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -617,7 +617,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -643,7 +643,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -665,7 +665,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -687,7 +687,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -695,7 +695,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -721,7 +721,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -743,7 +743,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -765,7 +765,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -773,7 +773,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -799,7 +799,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -821,7 +821,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -843,7 +843,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -851,7 +851,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -877,7 +877,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -899,7 +899,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -921,7 +921,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -929,7 +929,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY (c1) +/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -955,7 +955,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -977,7 +977,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -999,7 +999,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -1007,7 +1007,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -1033,7 +1033,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -1055,7 +1055,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -1077,7 +1077,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -1085,7 +1085,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -1111,7 +1111,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -1133,7 +1133,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -1155,7 +1155,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -1163,7 +1163,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -1189,7 +1189,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -1211,7 +1211,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -1233,7 +1233,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -1241,7 +1241,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -1267,7 +1267,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -1289,7 +1289,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -1311,7 +1311,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -1319,7 +1319,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -1345,7 +1345,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -1367,7 +1367,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -1389,7 +1389,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -1397,7 +1397,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY (c1) +/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; From ddb60a719b219980c5ac1103d687f475f734db26 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 4 Feb 2013 20:25:30 +0530 Subject: [PATCH 050/172] Bug #16190704: MTR STILL LOSES THE FAILED RUN LOGS AT RETRY-FAIL --- mysql-test/mysql-test-run.pl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 2f545b05c3c..11280f70161 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -617,9 +617,11 @@ sub run_test_server ($$$) { mtr_report("\nRetrying test $tname, ". "attempt($retries/$opt_retry)...\n"); #saving the log file as filename.failed in case of retry - my $worker_logdir= $result->{savedir}; - my $log_file_name=dirname($worker_logdir)."/".$result->{shortname}.".log"; - rename $log_file_name,$log_file_name.".failed"; + if ( $result->is_failed() ) { + my $worker_logdir= $result->{savedir}; + my $log_file_name=dirname($worker_logdir)."/".$result->{shortname}.".log"; + rename $log_file_name,$log_file_name.".failed"; + } delete($result->{result}); $result->{retries}= $retries+1; $result->write_test($sock, 'TESTCASE'); From a2be7d26a8c69e6068f32b2152099edc0194839e Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 5 Feb 2013 11:58:21 +0530 Subject: [PATCH 051/172] BUG #13625278 - PB2 SHOULD PROVIDE MORE USEFUL INFORMATION FOR TIMEOUTS --- mysql-test/mysql-test-run.pl | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 11280f70161..4b29fba9120 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -3622,6 +3622,7 @@ sub run_testcase ($) { my $test= start_mysqltest($tinfo); # Set only when we have to keep waiting after expectedly died server my $keep_waiting_proc = 0; + my $print_timeout= start_timer($print_freq * 60); while (1) { @@ -3646,7 +3647,22 @@ sub run_testcase ($) { } if (! $keep_waiting_proc) { - $proc= My::SafeProcess->wait_any_timeout($test_timeout); + if($test_timeout > $print_timeout) + { + $proc= My::SafeProcess->wait_any_timeout($print_timeout); + if ( $proc->{timeout} ) + { + #print out that the test is still on + mtr_print("Test still running: $tinfo->{name}"); + #reset the timer + $print_timeout= start_timer($print_freq * 60); + next; + } + } + else + { + $proc= My::SafeProcess->wait_any_timeout($test_timeout); + } } # Will be restored if we need to keep waiting From 3d7f52255b0d09191ac975c843a5e8fd6add2217 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 6 Feb 2013 13:02:14 +0530 Subject: [PATCH 052/172] BUG #13625278 - PB2 SHOULD PROVIDE MORE USEFUL INFORMATION FOR TIMEOUTS --- mysql-test/mysql-test-run.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 4b29fba9120..44d86bbae68 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -3467,6 +3467,7 @@ my %old_env; sub run_testcase ($) { my $tinfo= shift; + my $print_freq=20; mtr_verbose("Running test:", $tinfo->{name}); From 06400b63e70963a9ebaab8222d678609a5cb2009 Mon Sep 17 00:00:00 2001 From: Venkatesh Duggirala Date: Thu, 7 Feb 2013 17:23:37 +0530 Subject: [PATCH 053/172] Bug#16247322- MTR NOT RUNNING SYS_VARS TEST SUITE FOR 5.1 SYS_VARS suite is not enabled in MTR by default run. Enabling it with this check-in. mysql-test/suite/sys_vars/t/disabled.def: Till the bugs are fixed, disabling the failed test scripts --- mysql-test/mysql-test-run.pl | 4 ++-- mysql-test/suite/sys_vars/t/disabled.def | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 44d86bbae68..fbfbd7e2198 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl # -*- cperl -*- -# Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public @@ -157,7 +157,7 @@ my $path_config_file; # The generated config file, var/my.cnf # executables will be used by the test suite. our $opt_vs_config = $ENV{'MTR_VS_CONFIG'}; -my $DEFAULT_SUITES= "main,binlog,federated,rpl,rpl_ndb,ndb,innodb,innodb_plugin"; +my $DEFAULT_SUITES= "main,sys_vars,binlog,federated,rpl,rpl_ndb,ndb,innodb,innodb_plugin"; my $opt_suites; our $opt_verbose= 0; # Verbose output, enable with --verbose diff --git a/mysql-test/suite/sys_vars/t/disabled.def b/mysql-test/suite/sys_vars/t/disabled.def index 866172fb51a..c0a343c92ef 100644 --- a/mysql-test/suite/sys_vars/t/disabled.def +++ b/mysql-test/suite/sys_vars/t/disabled.def @@ -9,5 +9,15 @@ # Do not use any TAB characters for whitespace. # ############################################################################## -sys_vars.max_binlog_cache_size_basic_64 : bug#11763668 2010-08-31 Horst -sys_vars.max_binlog_cache_size_basic_32 : bug#11763668 2010-08-31 Horst +sys_vars.max_allowed_packet_basic : bug#16295372 2013-02-09 veduggir +sys_vars.max_allowed_packet_func : bug#16295372 2013-02-09 veduggir +sys_vars.net_buffer_length_basic : bug#16295372 2013-02-09 veduggir +sys_vars.insert_id_basic : bug#16295418 2013-02-09 veduggir +sys_vars.key_cache_age_threshold_basic_64 : bug#16295418 2013-02-09 veduggir +sys_vars.key_cache_block_size_basic_64 : bug#16295418 2013-02-09 veduggir +sys_vars.key_cache_division_limit_basic_64 : bug#16295418 2013-02-09 veduggir +sys_vars.identity_basic : bug#16295418 2013-02-09 veduggir +sys_vars.key_buffer_size_basic_64 : bug#16295418 2013-02-09 veduggir +sys_vars.key_buffer_size_func : bug#16295418 2013-02-09 veduggir +sys_vars.timestamp_basic_64 : bug#16295457 2013-02-09 veduggir +sys_vars.rpl_init_slave_func : bug#16295518 2013-02-09 veduggir From e908e9bc7e341b8c6a1f154aacd0736f5026ec37 Mon Sep 17 00:00:00 2001 From: Tor Didriksen Date: Thu, 7 Feb 2013 17:05:07 +0100 Subject: [PATCH 054/172] Bug#16192219 CRASH IN TEST_IF_SKIP_SORT_ORDER ON SELECT DISTINCT WITH ORDER BY This is a backport of the fix for: Bug#13633549 HANDLE_FATAL_SIGNAL IN TEST_IF_SKIP_SORT_ORDER/CREATE_SORT_INDEX Don't invoke the range optimizer for a NULL select. --- sql/sql_select.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 89567bd1f5e..12143c739f7 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -13753,7 +13753,8 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit, if (best_key >= 0) { - if (table->quick_keys.is_set(best_key) && best_key != ref_key) + if (select && + table->quick_keys.is_set(best_key) && best_key != ref_key) { key_map map; map.clear_all(); // Force the creation of quick select From b7cfe73fa5f02dff4b92493e880161e27051dbdf Mon Sep 17 00:00:00 2001 From: Igor Solodovnikov Date: Thu, 7 Feb 2013 19:46:08 +0200 Subject: [PATCH 055/172] bug#14163155 COM_CHANGE_USER DOESN'T WORK WITH CHARACTER-SET-SERVER=UCS2 IN 5.1 SERVER Problem was caused by the COM_CHANGE_USER parsing code. That code ignored character set number passed in COM_CHANGE_USER packet. Instead character_set_client values was used. User name was not converted at all. Fixed by using passed character set number to convert both db and user names. If COM_CHANGE_USER does not contain character set number then character_set_client is used to convert both names. --- sql/sql_parse.cc | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 6c376d2c0da..457be355f81 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1109,6 +1109,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd, char *user= (char*) packet, *packet_end= packet + packet_length; /* Safe because there is always a trailing \0 at the end of the packet */ char *passwd= strend(user)+1; + uint user_length= passwd - user - 1; thd->change_user(); thd->clear_error(); // if errors from rollback @@ -1122,6 +1123,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd, for *passwd > 127 and become 2**32-127 after casting to uint. */ char db_buff[NAME_LEN+1]; // buffer to store db in utf8 + char user_buff[USERNAME_LENGTH + 1]; // buffer to store user in utf8 char *db= passwd; char *save_db; /* @@ -1172,15 +1174,31 @@ bool dispatch_command(enum enum_server_command command, THD *thd, my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), "character_set_client", cs->csname); break; - } + } + + if (cs_number) + { + /* + We have checked charset earlier, + so thd_init_client_charset cannot fail. + */ + if (thd_init_client_charset(thd, cs_number)) + DBUG_ASSERT(0); + thd->update_charset(); + } } - /* Convert database name to utf8 */ + /* Convert database and user names to utf8 */ db_buff[copy_and_convert(db_buff, sizeof(db_buff)-1, system_charset_info, db, db_length, thd->charset(), &dummy_errors)]= 0; db= db_buff; + user_buff[copy_and_convert(user_buff,sizeof(user_buff)-1, + system_charset_info, user, user_length, + thd->charset(), &dummy_errors)]= 0; + user= user_buff; + /* Save user and privileges */ save_db_length= thd->db_length; save_db= thd->db; @@ -1215,17 +1233,6 @@ bool dispatch_command(enum enum_server_command command, THD *thd, #endif /* NO_EMBEDDED_ACCESS_CHECKS */ x_free(save_db); x_free(save_security_ctx.user); - - if (cs_number) - { - /* - We have checked charset earlier, - so thd_init_client_charset cannot fail. - */ - if (thd_init_client_charset(thd, cs_number)) - DBUG_ASSERT(0); - thd->update_charset(); - } } break; } From a6fb71e249f2b8e21f1c365e5acf531f6fd2577a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 8 Feb 2013 09:22:46 +0200 Subject: [PATCH 056/172] Bug#16292043 RACE CONDITION IN SRV_EXPORT_INNODB_STATUS() WHEN ACCESSING PURGE_SYS->VIEW srv_export_innodb_status(): Read the purge_sys fields while holding purge_sys->latch. Approved by Sunny Bains --- storage/innobase/srv/srv0srv.c | 39 ++++++++++++++++---------- storage/innodb_plugin/srv/srv0srv.c | 43 ++++++++++++++++++----------- 2 files changed, 52 insertions(+), 30 deletions(-) diff --git a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c index 3240b7515f8..e5619abbe45 100644 --- a/storage/innobase/srv/srv0srv.c +++ b/storage/innobase/srv/srv0srv.c @@ -1922,21 +1922,32 @@ srv_export_innodb_status(void) export_vars.innodb_rows_deleted = srv_n_rows_deleted; #ifdef UNIV_DEBUG - if (ut_dulint_cmp(trx_sys->max_trx_id, purge_sys->done_trx_no) < 0) { - export_vars.innodb_purge_trx_id_age = 0; - } else { - export_vars.innodb_purge_trx_id_age = - ut_dulint_minus(trx_sys->max_trx_id, purge_sys->done_trx_no); - } + { + dulint done_trx_no; + dulint up_limit_id; - if (!purge_sys->view - || ut_dulint_cmp(trx_sys->max_trx_id, - purge_sys->view->up_limit_id) < 0) { - export_vars.innodb_purge_view_trx_id_age = 0; - } else { - export_vars.innodb_purge_view_trx_id_age = - ut_dulint_minus(trx_sys->max_trx_id, - purge_sys->view->up_limit_id); + rw_lock_s_lock(&purge_sys->latch); + done_trx_no = purge_sys->done_trx_no; + up_limit_id = purge_sys->view + ? purge_sys->view->up_limit_id + : ut_dulint_zero; + rw_lock_s_unlock(&purge_sys->latch); + + if (ut_dulint_cmp(trx_sys->max_trx_id, done_trx_no) < 0) { + export_vars.innodb_purge_trx_id_age = 0; + } else { + export_vars.innodb_purge_trx_id_age = ut_dulint_minus( + trx_sys->max_trx_id, done_trx_no); + } + + if (ut_dulint_is_zero(up_limit_id) + || ut_dulint_cmp(trx_sys->max_trx_id, up_limit_id) < 0) { + export_vars.innodb_purge_view_trx_id_age = 0; + } else { + export_vars.innodb_purge_view_trx_id_age = + ut_dulint_minus(trx_sys->max_trx_id, + up_limit_id); + } } #endif /* UNIV_DEBUG */ diff --git a/storage/innodb_plugin/srv/srv0srv.c b/storage/innodb_plugin/srv/srv0srv.c index 4ddd0a4603d..4e626003f4f 100644 --- a/storage/innodb_plugin/srv/srv0srv.c +++ b/storage/innodb_plugin/srv/srv0srv.c @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 1995, 2010, Innobase Oy. All Rights Reserved. +Copyright (c) 1995, 2013, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, 2009 Google Inc. Copyright (c) 2009, Percona Inc. @@ -257,7 +257,7 @@ UNIV_INTERN ulint srv_data_read = 0; /* Internal setting for "innodb_stats_method". Decides how InnoDB treats NULL value when collecting statistics. By default, it is set to SRV_STATS_NULLS_EQUAL(0), ie. all NULL value are treated equal */ -ulong srv_innodb_stats_method = SRV_STATS_NULLS_EQUAL; +UNIV_INTERN ulong srv_innodb_stats_method = SRV_STATS_NULLS_EQUAL; /* here we count the amount of data written in total (in bytes) */ UNIV_INTERN ulint srv_data_written = 0; @@ -1978,21 +1978,32 @@ srv_export_innodb_status(void) export_vars.innodb_rows_deleted = srv_n_rows_deleted; #ifdef UNIV_DEBUG - if (ut_dulint_cmp(trx_sys->max_trx_id, purge_sys->done_trx_no) < 0) { - export_vars.innodb_purge_trx_id_age = 0; - } else { - export_vars.innodb_purge_trx_id_age = - ut_dulint_minus(trx_sys->max_trx_id, purge_sys->done_trx_no); - } + { + dulint done_trx_no; + dulint up_limit_id; - if (!purge_sys->view - || ut_dulint_cmp(trx_sys->max_trx_id, - purge_sys->view->up_limit_id) < 0) { - export_vars.innodb_purge_view_trx_id_age = 0; - } else { - export_vars.innodb_purge_view_trx_id_age = - ut_dulint_minus(trx_sys->max_trx_id, - purge_sys->view->up_limit_id); + rw_lock_s_lock(&purge_sys->latch); + done_trx_no = purge_sys->done_trx_no; + up_limit_id = purge_sys->view + ? purge_sys->view->up_limit_id + : ut_dulint_zero; + rw_lock_s_unlock(&purge_sys->latch); + + if (ut_dulint_cmp(trx_sys->max_trx_id, done_trx_no) < 0) { + export_vars.innodb_purge_trx_id_age = 0; + } else { + export_vars.innodb_purge_trx_id_age = ut_dulint_minus( + trx_sys->max_trx_id, done_trx_no); + } + + if (ut_dulint_is_zero(up_limit_id) + || ut_dulint_cmp(trx_sys->max_trx_id, up_limit_id) < 0) { + export_vars.innodb_purge_view_trx_id_age = 0; + } else { + export_vars.innodb_purge_view_trx_id_age = + ut_dulint_minus(trx_sys->max_trx_id, + up_limit_id); + } } #endif /* UNIV_DEBUG */ From c65dabaf8e2378258698f0c8d83eb94ea777e588 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 8 Feb 2013 09:23:12 +0200 Subject: [PATCH 057/172] Add missing linkage specifiers, so that ha_innodb_plugin.so will not export internal symbols. --- storage/innodb_plugin/handler/ha_innodb.cc | 1 + storage/innodb_plugin/trx/trx0sys.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/storage/innodb_plugin/handler/ha_innodb.cc b/storage/innodb_plugin/handler/ha_innodb.cc index 229e7fe71e5..e0339b727ea 100644 --- a/storage/innodb_plugin/handler/ha_innodb.cc +++ b/storage/innodb_plugin/handler/ha_innodb.cc @@ -1067,6 +1067,7 @@ mysqld.cc. We do a dirty read because for one there is no synchronization object and secondly there is little harm in doing so even if we get a torn read. @return value of lower_case_table_names */ +static ulint innobase_get_lower_case_table_names(void) /*=====================================*/ diff --git a/storage/innodb_plugin/trx/trx0sys.c b/storage/innodb_plugin/trx/trx0sys.c index daa65bfcef0..6b44db14af7 100644 --- a/storage/innodb_plugin/trx/trx0sys.c +++ b/storage/innodb_plugin/trx/trx0sys.c @@ -129,7 +129,7 @@ static const ulint FILE_FORMAT_NAME_N #ifdef UNIV_DEBUG /* Flag to control TRX_RSEG_N_SLOTS behavior debugging. */ -uint trx_rseg_n_slots_debug = 0; +UNIV_INTERN uint trx_rseg_n_slots_debug = 0; #endif #ifndef UNIV_HOTBACKUP From 7557fc6c0fe36d2b73d7bbb6778d90368f1bf3c9 Mon Sep 17 00:00:00 2001 From: Venkatesh Duggirala Date: Fri, 8 Feb 2013 15:41:18 +0530 Subject: [PATCH 058/172] BUG#16247322-MTR NOT RUNNING SYS_VARS TEST SUITE FOR 5.1 Problem: Sys_vars suite is disabled in mysql-5.1 branch. Fix: To enable sys_vars suite in mysql-5.1, add it in mysql-test-run.pl file and also sys_vars suite should be added to Makefile.am inorder to get that test directory --- mysql-test/Makefile.am | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mysql-test/Makefile.am b/mysql-test/Makefile.am index 10b1ade81c2..d3e43996c9f 100644 --- a/mysql-test/Makefile.am +++ b/mysql-test/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public @@ -103,7 +103,8 @@ TEST_DIRS = t r include std_data std_data/parts collections \ suite/engines suite/engines/funcs suite/engines/iuds suite/engines/rr_trx \ suite/engines/funcs/r suite/engines/funcs/t suite/engines/iuds/r \ suite/engines/iuds/t suite/engines/rr_trx/include suite/engines/rr_trx/r \ - suite/engines/rr_trx/t + suite/engines/rr_trx/t \ + suite/sys_vars # Used by dist-hook and install-data-local to copy all # test files into either dist or install directory From b0f78ea2780858ef8e4501b40611c20efb9e5f9f Mon Sep 17 00:00:00 2001 From: Venkatesh Duggirala Date: Fri, 8 Feb 2013 16:34:32 +0530 Subject: [PATCH 059/172] BUG#16247322-MTR NOT RUNNING SYS_VARS TEST SUITE FOR 5.1 Reverting back the previous changes as they are causing issues in PB2. --- mysql-test/Makefile.am | 3 +-- mysql-test/mysql-test-run.pl | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/mysql-test/Makefile.am b/mysql-test/Makefile.am index d3e43996c9f..9cb9ca8a275 100644 --- a/mysql-test/Makefile.am +++ b/mysql-test/Makefile.am @@ -103,8 +103,7 @@ TEST_DIRS = t r include std_data std_data/parts collections \ suite/engines suite/engines/funcs suite/engines/iuds suite/engines/rr_trx \ suite/engines/funcs/r suite/engines/funcs/t suite/engines/iuds/r \ suite/engines/iuds/t suite/engines/rr_trx/include suite/engines/rr_trx/r \ - suite/engines/rr_trx/t \ - suite/sys_vars + suite/engines/rr_trx/t # Used by dist-hook and install-data-local to copy all # test files into either dist or install directory diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index fbfbd7e2198..bcc43a97cdf 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -157,7 +157,7 @@ my $path_config_file; # The generated config file, var/my.cnf # executables will be used by the test suite. our $opt_vs_config = $ENV{'MTR_VS_CONFIG'}; -my $DEFAULT_SUITES= "main,sys_vars,binlog,federated,rpl,rpl_ndb,ndb,innodb,innodb_plugin"; +my $DEFAULT_SUITES= "main,binlog,federated,rpl,rpl_ndb,ndb,innodb,innodb_plugin"; my $opt_suites; our $opt_verbose= 0; # Verbose output, enable with --verbose From 8aecb30cdd1eea3517684dfc8d9d598b59396316 Mon Sep 17 00:00:00 2001 From: Annamalai Gurusami Date: Tue, 12 Feb 2013 14:52:48 +0530 Subject: [PATCH 060/172] Bug #11753153 INNODB GENERATES SYMBOLS THAT ARE TOO LONG, INVALID DDL FROM SHOW CREATE Problem: The length of the internally generated foreign key name is not checked. Solution: The length of the internally generated foreign key name is checked. If it is greater than the allowed limit, an error message is reported. Also, the constraint name is printed in the same manner as the table name, using the system charset information. rb://1969 approved by Marko. --- storage/innobase/dict/dict0crea.c | 9 +++ storage/innobase/dict/dict0dict.c | 6 +- storage/innobase/handler/ha_innodb.cc | 63 +++++++++++++++++++ storage/innobase/include/db0err.h | 1 + storage/innobase/include/ha_prototypes.h | 22 +++++++ storage/innodb_plugin/dict/dict0crea.c | 9 +++ storage/innodb_plugin/dict/dict0dict.c | 5 +- storage/innodb_plugin/handler/ha_innodb.cc | 34 ++++++++++ storage/innodb_plugin/include/db0err.h | 1 + storage/innodb_plugin/include/ha_prototypes.h | 11 ++++ 10 files changed, 159 insertions(+), 2 deletions(-) diff --git a/storage/innobase/dict/dict0crea.c b/storage/innobase/dict/dict0crea.c index 4116230347d..5e0fac8b411 100644 --- a/storage/innobase/dict/dict0crea.c +++ b/storage/innobase/dict/dict0crea.c @@ -25,6 +25,7 @@ Created 1/8/1996 Heikki Tuuri #include "trx0roll.h" #include "usr0sess.h" #include "ut0vec.h" +#include "ha_prototypes.h" /********************************************************************* Based on a table object, this function builds the entry to be inserted @@ -1350,12 +1351,20 @@ dict_create_add_foreign_to_dictionary( pars_info_t* info = pars_info_create(); if (foreign->id == NULL) { + char* stripped_name; /* Generate a new constraint id */ ulint namelen = strlen(table->name); char* id = mem_heap_alloc(foreign->heap, namelen + 20); /* no overflow if number < 1e13 */ sprintf(id, "%s_ibfk_%lu", table->name, (ulong) (*id_nr)++); foreign->id = id; + + stripped_name = strchr(foreign->id, '/') + 1; + if (innobase_check_identifier_length(stripped_name)) { + fprintf(stderr, "InnoDB: Generated foreign key " + "name (%s) is too long\n", foreign->id); + return(DB_IDENTIFIER_TOO_LONG); + } } pars_info_add_str_literal(info, "id", foreign->id); diff --git a/storage/innobase/dict/dict0dict.c b/storage/innobase/dict/dict0dict.c index 7139eb5db95..a38b7224551 100644 --- a/storage/innobase/dict/dict0dict.c +++ b/storage/innobase/dict/dict0dict.c @@ -31,6 +31,7 @@ Created 1/8/1996 Heikki Tuuri #ifndef UNIV_HOTBACKUP # include "m_ctype.h" /* my_isspace() */ #endif /* !UNIV_HOTBACKUP */ +#include "ha_prototypes.h" #include @@ -4107,6 +4108,7 @@ dict_print_info_on_foreign_key_in_create_format( dict_foreign_t* foreign, /* in: foreign key constraint */ ibool add_newline) /* in: whether to add a newline */ { + char constraint_name[MAX_TABLE_NAME_LEN]; const char* stripped_id; ulint i; @@ -4128,7 +4130,9 @@ dict_print_info_on_foreign_key_in_create_format( } fputs(" CONSTRAINT ", file); - ut_print_name(file, trx, FALSE, stripped_id); + innobase_convert_to_system_charset(constraint_name, stripped_id, + MAX_TABLE_NAME_LEN); + ut_print_name(file, trx, FALSE, constraint_name); fputs(" FOREIGN KEY (", file); for (i = 0;;) { diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 194a7eea795..0f373476efb 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -791,6 +791,11 @@ convert_error_code_to_mysql( } else if (error == DB_UNSUPPORTED) { return(HA_ERR_UNSUPPORTED); + + } else if (error == DB_IDENTIFIER_TOO_LONG) { + + return(HA_ERR_INTERNAL_ERROR); + } else if (error == DB_INTERRUPTED) { my_error(ER_QUERY_INTERRUPTED, MYF(0)); @@ -894,6 +899,37 @@ innobase_convert_from_table_id( &my_charset_filename, to, (uint) len, &errors); } +/********************************************************************** +Check if the length of the identifier exceeds the maximum allowed. +The input to this function is an identifier in charset my_charset_filename. +return true when length of identifier is too long. */ +extern "C" +my_bool +innobase_check_identifier_length( +/*=============================*/ + const char* id) /* in: identifier to check. it must belong + to charset my_charset_filename */ +{ + char tmp[MAX_TABLE_NAME_LEN + 10]; + uint errors; + uint len; + int well_formed_error = 0; + CHARSET_INFO *cs1 = &my_charset_filename; + CHARSET_INFO *cs2 = thd_charset(current_thd); + + len = strconvert(cs1, id, cs2, tmp, MAX_TABLE_NAME_LEN + 10, &errors); + + uint res = cs2->cset->well_formed_len(cs2, tmp, tmp + len, + NAME_CHAR_LEN, + &well_formed_error); + + if (well_formed_error || res != len) { + my_error(ER_TOO_LONG_IDENT, MYF(0), tmp); + return(true); + } + return(false); +} + /********************************************************************** Converts an identifier to UTF-8. @@ -913,6 +949,33 @@ innobase_convert_from_id( system_charset_info, to, (uint) len, &errors); } +/********************************************************************** +Converts an identifier from my_charset_filename to UTF-8 charset. */ +extern "C" +uint +innobase_convert_to_system_charset( +/*===============================*/ + char* to, /* out: converted identifier */ + const char* from, /* in: identifier to convert */ + ulint len) /* in: length of 'to', in bytes */ +{ + uint errors; + uint rlen; + CHARSET_INFO* cs1 = &my_charset_filename; + CHARSET_INFO* cs2 = system_charset_info; + + rlen = strconvert(cs1, from, cs2, to, len, &errors); + + if (errors) { + fprintf(stderr, " InnoDB: There was a problem in converting" + "'%s' in charset %s to charset %s", from, cs1->name, + cs2->name); + } + + return(rlen); +} + + /********************************************************************** Compares NUL-terminated UTF-8 strings case insensitively. diff --git a/storage/innobase/include/db0err.h b/storage/innobase/include/db0err.h index 1514b19639c..73bb1876b3a 100644 --- a/storage/innobase/include/db0err.h +++ b/storage/innobase/include/db0err.h @@ -84,6 +84,7 @@ Created 5/24/1996 Heikki Tuuri foreign keys as its prefix columns */ #define DB_TABLE_IN_FK_CHECK 53 /* table is being used in foreign key check */ +#define DB_IDENTIFIER_TOO_LONG 54 /* Identifier name too long */ /* The following are partial failure codes */ #define DB_FAIL 1000 diff --git a/storage/innobase/include/ha_prototypes.h b/storage/innobase/include/ha_prototypes.h index ce790814818..0ad3c82fffd 100644 --- a/storage/innobase/include/ha_prototypes.h +++ b/storage/innobase/include/ha_prototypes.h @@ -75,5 +75,27 @@ thd_is_select( /* out: true if thd is executing SELECT */ const void* thd); /* in: thread handle (THD*) */ +/********************************************************************** +Check if the length of the identifier exceeds the maximum allowed. +The input to this function is an identifier in charset my_charset_filename. +return true when length of identifier is too long. */ + +my_bool +innobase_check_identifier_length( +/*=============================*/ + const char* id); /* in: identifier to check. it must belong + to charset my_charset_filename */ + +/********************************************************************** +Converts an identifier from my_charset_filename to UTF-8 charset. */ + +uint +innobase_convert_to_system_charset( +/*===============================*/ + char* to, /* out: converted identifier */ + const char* from, /* in: identifier to convert */ + ulint len); /* in: length of 'to', in bytes */ + + #endif #endif diff --git a/storage/innodb_plugin/dict/dict0crea.c b/storage/innodb_plugin/dict/dict0crea.c index a57b2eca9e2..957a7f822b9 100644 --- a/storage/innodb_plugin/dict/dict0crea.c +++ b/storage/innodb_plugin/dict/dict0crea.c @@ -42,6 +42,7 @@ Created 1/8/1996 Heikki Tuuri #include "trx0roll.h" #include "usr0sess.h" #include "ut0vec.h" +#include "ha_prototypes.h" /*****************************************************************//** Based on a table object, this function builds the entry to be inserted @@ -1429,12 +1430,20 @@ dict_create_add_foreign_to_dictionary( pars_info_t* info = pars_info_create(); if (foreign->id == NULL) { + char* stripped_name; /* Generate a new constraint id */ ulint namelen = strlen(table->name); char* id = mem_heap_alloc(foreign->heap, namelen + 20); /* no overflow if number < 1e13 */ sprintf(id, "%s_ibfk_%lu", table->name, (ulong) (*id_nr)++); foreign->id = id; + + stripped_name = strchr(foreign->id, '/') + 1; + if (innobase_check_identifier_length(stripped_name)) { + fprintf(stderr, "InnoDB: Generated foreign key " + "name (%s) is too long\n", foreign->id); + return(DB_IDENTIFIER_TOO_LONG); + } } pars_info_add_str_literal(info, "id", foreign->id); diff --git a/storage/innodb_plugin/dict/dict0dict.c b/storage/innodb_plugin/dict/dict0dict.c index 9cd0f51d72b..4219f83df4a 100644 --- a/storage/innodb_plugin/dict/dict0dict.c +++ b/storage/innodb_plugin/dict/dict0dict.c @@ -4602,6 +4602,7 @@ dict_print_info_on_foreign_key_in_create_format( dict_foreign_t* foreign, /*!< in: foreign key constraint */ ibool add_newline) /*!< in: whether to add a newline */ { + char constraint_name[MAX_TABLE_NAME_LEN]; const char* stripped_id; ulint i; @@ -4623,7 +4624,9 @@ dict_print_info_on_foreign_key_in_create_format( } fputs(" CONSTRAINT ", file); - ut_print_name(file, trx, FALSE, stripped_id); + innobase_convert_from_id(&my_charset_filename, constraint_name, + stripped_id, MAX_TABLE_NAME_LEN); + ut_print_name(file, trx, FALSE, constraint_name); fputs(" FOREIGN KEY (", file); for (i = 0;;) { diff --git a/storage/innodb_plugin/handler/ha_innodb.cc b/storage/innodb_plugin/handler/ha_innodb.cc index e0339b727ea..d24aca5325a 100644 --- a/storage/innodb_plugin/handler/ha_innodb.cc +++ b/storage/innodb_plugin/handler/ha_innodb.cc @@ -931,6 +931,9 @@ convert_error_code_to_mysql( return(HA_ERR_UNSUPPORTED); case DB_OUT_OF_MEMORY: return(HA_ERR_OUT_OF_MEM); + case DB_IDENTIFIER_TOO_LONG: + my_error(ER_TOO_LONG_IDENT, MYF(0)); + return(HA_ERR_INTERNAL_ERROR); } } @@ -1009,6 +1012,37 @@ innobase_convert_from_table_id( strconvert(cs, from, &my_charset_filename, to, (uint) len, &errors); } +/********************************************************************** +Check if the length of the identifier exceeds the maximum allowed. +The input to this function is an identifier in charset my_charset_filename. +return true when length of identifier is too long. */ +extern "C" UNIV_INTERN +my_bool +innobase_check_identifier_length( +/*=============================*/ + const char* id) /* in: identifier to check. it must belong + to charset my_charset_filename */ +{ + char tmp[MAX_TABLE_NAME_LEN + 10]; + uint errors; + uint len; + int well_formed_error = 0; + CHARSET_INFO* cs1 = &my_charset_filename; + CHARSET_INFO* cs2 = thd_charset(current_thd); + + len = strconvert(cs1, id, cs2, tmp, MAX_TABLE_NAME_LEN + 10, &errors); + + uint res = cs2->cset->well_formed_len(cs2, tmp, tmp + len, + NAME_CHAR_LEN, + &well_formed_error); + + if (well_formed_error || res != len) { + my_error(ER_TOO_LONG_IDENT, MYF(0), tmp); + return(true); + } + return(false); +} + /******************************************************************//** Converts an identifier to UTF-8. */ extern "C" UNIV_INTERN diff --git a/storage/innodb_plugin/include/db0err.h b/storage/innodb_plugin/include/db0err.h index e4a3844cd22..a195c1a1359 100644 --- a/storage/innodb_plugin/include/db0err.h +++ b/storage/innodb_plugin/include/db0err.h @@ -99,6 +99,7 @@ enum db_err { maximum allowed depth */ DB_TABLE_IN_FK_CHECK, /* table is being used in foreign key check */ + DB_IDENTIFIER_TOO_LONG, /* Identifier name too long */ /* The following are partial failure codes */ DB_FAIL = 1000, diff --git a/storage/innodb_plugin/include/ha_prototypes.h b/storage/innodb_plugin/include/ha_prototypes.h index e897a233a6a..cc3e5f64634 100644 --- a/storage/innodb_plugin/include/ha_prototypes.h +++ b/storage/innodb_plugin/include/ha_prototypes.h @@ -268,4 +268,15 @@ thd_lock_wait_timeout( void* thd); /*!< in: thread handle (THD*), or NULL to query the global innodb_lock_wait_timeout */ +/********************************************************************** +Check if the length of the identifier exceeds the maximum allowed. +The input to this function is an identifier in charset my_charset_filename. +return true when length of identifier is too long. */ +UNIV_INTERN +my_bool +innobase_check_identifier_length( +/*=============================*/ + const char* id); /* in: identifier to check. it must belong + to charset my_charset_filename */ + #endif From 5d47242dde0e9d1d019d3a644373e0114a24f882 Mon Sep 17 00:00:00 2001 From: Annamalai Gurusami Date: Thu, 14 Feb 2013 16:33:31 +0530 Subject: [PATCH 061/172] For the error code ER_TOO_LONG_IDENT, the identifier is expected in the my_error call. So removing this line from here. --- storage/innodb_plugin/handler/ha_innodb.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/storage/innodb_plugin/handler/ha_innodb.cc b/storage/innodb_plugin/handler/ha_innodb.cc index d24aca5325a..5424c4af68c 100644 --- a/storage/innodb_plugin/handler/ha_innodb.cc +++ b/storage/innodb_plugin/handler/ha_innodb.cc @@ -932,7 +932,6 @@ convert_error_code_to_mysql( case DB_OUT_OF_MEMORY: return(HA_ERR_OUT_OF_MEM); case DB_IDENTIFIER_TOO_LONG: - my_error(ER_TOO_LONG_IDENT, MYF(0)); return(HA_ERR_INTERNAL_ERROR); } } From e96182824dd85a1a77fcf58d293d17451d003135 Mon Sep 17 00:00:00 2001 From: Mattias Jonsson Date: Thu, 14 Feb 2013 17:03:49 +0100 Subject: [PATCH 062/172] Bug#16274455: CAN NOT ACESS PARTITIONED TABLES WHEN DOWNGRADED FROM 5.6.11 TO 5.6.10 Problem was new syntax not accepted by previous version. Fixed by adding version comment of /*!50531 around the new syntax. Like this in the .frm file: 'PARTITION BY KEY /*!50611 ALGORITHM = 2 */ () PARTITIONS 3' and also changing the output from SHOW CREATE TABLE to: CREATE TABLE t1 (a INT) /*!50100 PARTITION BY KEY */ /*!50611 ALGORITHM = 1 */ /*!50100 () PARTITIONS 3 */ It will always add the ALGORITHM into the .frm for KEY [sub]partitioned tables, but for SHOW CREATE TABLE it will only add it in case it is the non default ALGORITHM = 1. Also notice that for 5.5, it will say /*!50531 instead of /*!50611, which will make upgrade from 5.5 > 5.5.31 to 5.6 < 5.6.11 fail! If one downgrades an fixed version to the same major version (5.5 or 5.6) the bug 14521864 will be visible again, but unless the .frm is updated, it will work again when upgrading again. Also fixed so that the .frm does not get updated version if a single partition check passes. --- mysql-test/r/partition.result | 42 +++--- mysql-test/r/partition_column.result | 2 +- mysql-test/r/partition_innodb.result | 6 +- mysql-test/r/partition_mgm_err.result | 2 +- mysql-test/r/partition_myisam.result | 2 +- ...ition_change_from_range_to_hash_key.result | 24 +-- .../engines/funcs/r/tc_partition_key.result | 96 ++++++------ .../funcs/r/tc_partition_linear_key.result | 96 ++++++------ .../r/tc_partition_reorg_hash_key.result | 96 ++++++------ .../r/partition_alter1_1_2_innodb.result | 42 +++--- .../r/partition_alter1_1_2_myisam.result | 12 +- .../parts/r/partition_alter1_1_innodb.result | 24 +-- .../parts/r/partition_alter1_1_myisam.result | 12 +- .../parts/r/partition_alter1_2_innodb.result | 60 ++++---- .../parts/r/partition_alter1_2_myisam.result | 24 +-- .../r/partition_alter2_1_1_innodb.result | 30 ++-- .../r/partition_alter2_1_2_innodb.result | 30 ++-- .../parts/r/partition_alter2_1_myisam.result | 36 ++--- .../r/partition_alter2_2_1_innodb.result | 30 ++-- .../r/partition_alter2_2_2_innodb.result | 30 ++-- .../parts/r/partition_alter2_2_myisam.result | 36 ++--- .../parts/r/partition_alter3_innodb.result | 22 +-- .../parts/r/partition_alter3_myisam.result | 22 +-- .../parts/r/partition_alter4_innodb.result | 138 +++++++++--------- .../parts/r/partition_alter4_myisam.result | 138 +++++++++--------- .../parts/r/partition_basic_innodb.result | 48 +++--- .../parts/r/partition_basic_myisam.result | 24 +-- .../r/partition_basic_symlink_myisam.result | 26 ++-- .../suite/parts/r/partition_bit_innodb.result | 18 +-- .../suite/parts/r/partition_bit_myisam.result | 18 +-- .../parts/r/partition_char_innodb.result | 24 +-- .../parts/r/partition_char_myisam.result | 24 +-- .../parts/r/partition_datetime_innodb.result | 32 ++-- .../parts/r/partition_datetime_myisam.result | 32 ++-- .../parts/r/partition_decimal_innodb.result | 8 +- .../parts/r/partition_decimal_myisam.result | 8 +- .../parts/r/partition_float_innodb.result | 8 +- .../parts/r/partition_float_myisam.result | 8 +- .../suite/parts/r/partition_int_innodb.result | 30 ++-- .../suite/parts/r/partition_int_myisam.result | 30 ++-- .../parts/r/partition_mgm_lc0_archive.result | 8 +- .../parts/r/partition_mgm_lc0_innodb.result | 8 +- .../parts/r/partition_mgm_lc0_memory.result | 8 +- .../parts/r/partition_mgm_lc0_myisam.result | 8 +- .../parts/r/partition_mgm_lc1_archive.result | 8 +- .../parts/r/partition_mgm_lc1_innodb.result | 8 +- .../parts/r/partition_mgm_lc1_memory.result | 8 +- .../parts/r/partition_mgm_lc1_myisam.result | 8 +- .../parts/r/partition_mgm_lc2_archive.result | 8 +- .../parts/r/partition_mgm_lc2_innodb.result | 8 +- .../parts/r/partition_mgm_lc2_memory.result | 8 +- .../parts/r/partition_mgm_lc2_myisam.result | 8 +- .../parts/r/partition_special_innodb.result | 8 +- .../parts/r/partition_special_myisam.result | 8 +- .../rpl/r/rpl_extra_col_slave_innodb.result | 4 +- .../rpl/r/rpl_extra_col_slave_myisam.result | 4 +- .../rpl/r/rpl_row_basic_8partition.result | 12 +- sql/ha_partition.cc | 3 +- sql/handler.cc | 3 + sql/partition_info.cc | 18 ++- sql/sql_partition.cc | 85 +++++++---- sql/sql_partition.h | 5 +- sql/sql_show.cc | 34 +++-- sql/sql_table.cc | 11 +- 64 files changed, 868 insertions(+), 813 deletions(-) diff --git a/mysql-test/r/partition.result b/mysql-test/r/partition.result index dbc212a0222..af90387c6b6 100644 --- a/mysql-test/r/partition.result +++ b/mysql-test/r/partition.result @@ -81,7 +81,7 @@ t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL, `b` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 2 */ SELECT * FROM t1; a b @@ -175,7 +175,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`ID`,`aaaa,aaaaa`,`ddddddddd`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (ID) -SUBPARTITION BY LINEAR KEY ALGORITHM = 2 (ID,`aaaa,aaaaa`) +SUBPARTITION BY LINEAR KEY (ID,`aaaa,aaaaa`) SUBPARTITIONS 2 (PARTITION p01 VALUES LESS THAN (100) ENGINE = MyISAM, PARTITION p11 VALUES LESS THAN (200) ENGINE = MyISAM, @@ -722,7 +722,7 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) (PARTITION p0 VALUES LESS THAN (1) ENGINE = MyISAM, PARTITION p1 VALUES LESS THAN (2) ENGINE = MyISAM) */ alter table t1 reorganize partition p1 into (partition p1 values less than (3)); @@ -732,7 +732,7 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) (PARTITION p0 VALUES LESS THAN (1) ENGINE = MyISAM, PARTITION p1 VALUES LESS THAN (3) ENGINE = MyISAM) */ drop table t1; @@ -753,7 +753,7 @@ t1 CREATE TABLE `t1` ( `c` int(11) NOT NULL, PRIMARY KEY (`a`,`b`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) */ +/*!50100 PARTITION BY KEY (a) */ drop table t1; CREATE TABLE t1 ( a int not null, @@ -1074,7 +1074,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION p0 ENGINE = MyISAM, PARTITION p1 ENGINE = MyISAM) */ alter table t1; @@ -1083,7 +1083,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION p0 ENGINE = MyISAM, PARTITION p1 ENGINE = MyISAM) */ alter table t1 engine=myisam; @@ -1092,7 +1092,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION p0 ENGINE = MyISAM, PARTITION p1 ENGINE = MyISAM) */ alter table t1 engine=heap; @@ -1101,7 +1101,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION p0 ENGINE = MEMORY, PARTITION p1 ENGINE = MEMORY) */ alter table t1 remove partitioning; @@ -1121,7 +1121,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION p0 ENGINE = MyISAM, PARTITION p1 ENGINE = MyISAM) */ alter table t1 add column b int remove partitioning; @@ -1141,7 +1141,7 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION p0 ENGINE = MyISAM, PARTITION p1 ENGINE = MyISAM) */ alter table t1 @@ -1154,7 +1154,7 @@ t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION p0 ENGINE = MEMORY, PARTITION p1 ENGINE = MEMORY) */ alter table t1 engine=myisam, add column c int remove partitioning; @@ -1176,7 +1176,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT NULL, `c` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION p0 ENGINE = MEMORY, PARTITION p1 ENGINE = MEMORY) */ alter table t1 @@ -1189,7 +1189,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT NULL, `c` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION p0 ENGINE = MEMORY, PARTITION p1 ENGINE = MEMORY) */ alter table t1 @@ -1203,7 +1203,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT NULL, `c` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION p0 ENGINE = MEMORY, PARTITION p1 ENGINE = MEMORY) */ alter table t1 @@ -1373,14 +1373,14 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) */ +/*!50100 PARTITION BY KEY (a) */ alter table t1 add partition (partition p1); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION p0 ENGINE = MyISAM, PARTITION p1 ENGINE = MyISAM) */ drop table t1; @@ -1480,7 +1480,7 @@ t2 CREATE TABLE `t2` ( `c` char(10) DEFAULT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='no comment' -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) */ +/*!50100 PARTITION BY KEY (a) */ drop table t2; create table t1 (f1 int) partition by hash (f1) as select 1; drop table t1; @@ -1715,7 +1715,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION p0) */ set session sql_mode=''; drop table t1; @@ -1731,7 +1731,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` varchar(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) */ +/*!50100 PARTITION BY KEY (a) */ drop table t1; CREATE TABLE t1 (a int) ENGINE = MYISAM PARTITION BY KEY(a); INSERT into t1 values (1), (2); @@ -1804,7 +1804,7 @@ t1 CREATE TABLE `t1` ( `a` bigint(20) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 10 */ insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE), (18446744073709551613), (18446744073709551612); diff --git a/mysql-test/r/partition_column.result b/mysql-test/r/partition_column.result index d7cd0beb35f..a494656a6a6 100644 --- a/mysql-test/r/partition_column.result +++ b/mysql-test/r/partition_column.result @@ -454,7 +454,7 @@ t1 CREATE TABLE `t1` ( `d` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50500 PARTITION BY RANGE COLUMNS(a,b,c) -SUBPARTITION BY KEY ALGORITHM = 2 (c,d) +SUBPARTITION BY KEY (c,d) SUBPARTITIONS 3 (PARTITION p0 VALUES LESS THAN (1,'abc','abc') ENGINE = MyISAM, PARTITION p1 VALUES LESS THAN (2,'abc','abc') ENGINE = MyISAM, diff --git a/mysql-test/r/partition_innodb.result b/mysql-test/r/partition_innodb.result index aca7060bba4..516d824b343 100644 --- a/mysql-test/r/partition_innodb.result +++ b/mysql-test/r/partition_innodb.result @@ -425,7 +425,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) */ +/*!50100 PARTITION BY KEY (a) */ drop table t1; create table t1 (a int) engine = innodb @@ -518,7 +518,7 @@ t1 CREATE TABLE `t1` ( `char_column` char(5) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (int_column) -SUBPARTITION BY KEY ALGORITHM = 2 (char_column) +SUBPARTITION BY KEY (char_column) SUBPARTITIONS 2 (PARTITION p1 VALUES LESS THAN (5) ENGINE = MyISAM) */ drop table t1; @@ -565,7 +565,7 @@ t1 CREATE TABLE `t1` ( `b` int(11) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 2 */ SELECT * FROM t1; a b diff --git a/mysql-test/r/partition_mgm_err.result b/mysql-test/r/partition_mgm_err.result index 50f8f39cc71..a13278d724e 100644 --- a/mysql-test/r/partition_mgm_err.result +++ b/mysql-test/r/partition_mgm_err.result @@ -145,7 +145,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 2 */ DROP TABLE t1; CREATE TABLE t1 (a INT) PARTITION BY HASH(a); diff --git a/mysql-test/r/partition_myisam.result b/mysql-test/r/partition_myisam.result index 6b85bac3908..97bcc11495c 100644 --- a/mysql-test/r/partition_myisam.result +++ b/mysql-test/r/partition_myisam.result @@ -150,7 +150,7 @@ t1 CREATE TABLE `t1` ( `a` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`a`) ) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) */ +/*!50100 PARTITION BY KEY (a) */ INSERT INTO t1 VALUES (NULL); SELECT * FROM t1; a diff --git a/mysql-test/suite/engines/funcs/r/tc_partition_change_from_range_to_hash_key.result b/mysql-test/suite/engines/funcs/r/tc_partition_change_from_range_to_hash_key.result index 07010138d40..bbaaeea8af7 100644 --- a/mysql-test/suite/engines/funcs/r/tc_partition_change_from_range_to_hash_key.result +++ b/mysql-test/suite/engines/funcs/r/tc_partition_change_from_range_to_hash_key.result @@ -412,7 +412,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ ALTER TABLE t1 COALESCE PARTITION 2; SELECT * FROM t1 ORDER BY c1; @@ -434,7 +434,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 3 */ DROP TABLE t1; SHOW TABLES; @@ -475,7 +475,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ ALTER TABLE t1 COALESCE PARTITION 2; SELECT * FROM t1 ORDER BY c1; @@ -497,7 +497,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 3 */ DROP TABLE t1; SHOW TABLES; @@ -538,7 +538,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ ALTER TABLE t1 COALESCE PARTITION 2; SELECT * FROM t1 ORDER BY c1; @@ -560,7 +560,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 3 */ DROP TABLE t1; SHOW TABLES; @@ -601,7 +601,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ ALTER TABLE t1 COALESCE PARTITION 2; SELECT * FROM t1 ORDER BY c1; @@ -623,7 +623,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 3 */ DROP TABLE t1; SHOW TABLES; @@ -664,7 +664,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ ALTER TABLE t1 COALESCE PARTITION 2; SELECT * FROM t1 ORDER BY c1; @@ -686,7 +686,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 3 */ DROP TABLE t1; SHOW TABLES; @@ -727,7 +727,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ ALTER TABLE t1 COALESCE PARTITION 2; SELECT * FROM t1 ORDER BY c1; @@ -749,7 +749,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 3 */ DROP TABLE t1; SHOW TABLES; diff --git a/mysql-test/suite/engines/funcs/r/tc_partition_key.result b/mysql-test/suite/engines/funcs/r/tc_partition_key.result index 0bd1df6d995..309ddfe2bd9 100644 --- a/mysql-test/suite/engines/funcs/r/tc_partition_key.result +++ b/mysql-test/suite/engines/funcs/r/tc_partition_key.result @@ -9,7 +9,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -24,7 +24,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -39,7 +39,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -54,7 +54,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -69,7 +69,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -84,7 +84,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -99,7 +99,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -114,7 +114,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -129,7 +129,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -144,7 +144,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -159,7 +159,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -174,7 +174,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -189,7 +189,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -204,7 +204,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -219,7 +219,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -234,7 +234,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -249,7 +249,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -264,7 +264,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -279,7 +279,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -294,7 +294,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -309,7 +309,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -324,7 +324,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -339,7 +339,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -354,7 +354,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -369,7 +369,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -384,7 +384,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -399,7 +399,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -414,7 +414,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -429,7 +429,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -444,7 +444,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -459,7 +459,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -474,7 +474,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -489,7 +489,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -504,7 +504,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -519,7 +519,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -534,7 +534,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -549,7 +549,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -564,7 +564,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -579,7 +579,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -594,7 +594,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -609,7 +609,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -624,7 +624,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -639,7 +639,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -654,7 +654,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -669,7 +669,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -684,7 +684,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -699,7 +699,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -714,7 +714,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; diff --git a/mysql-test/suite/engines/funcs/r/tc_partition_linear_key.result b/mysql-test/suite/engines/funcs/r/tc_partition_linear_key.result index 791787ac581..ae543da271c 100644 --- a/mysql-test/suite/engines/funcs/r/tc_partition_linear_key.result +++ b/mysql-test/suite/engines/funcs/r/tc_partition_linear_key.result @@ -9,7 +9,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -24,7 +24,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -39,7 +39,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -54,7 +54,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -69,7 +69,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -84,7 +84,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -99,7 +99,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -114,7 +114,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -129,7 +129,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -144,7 +144,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -159,7 +159,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -174,7 +174,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -189,7 +189,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -204,7 +204,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -219,7 +219,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -234,7 +234,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -249,7 +249,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -264,7 +264,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -279,7 +279,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -294,7 +294,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -309,7 +309,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -324,7 +324,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -339,7 +339,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -354,7 +354,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 4 */ DROP TABLE t1; SHOW TABLES; @@ -369,7 +369,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -384,7 +384,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -399,7 +399,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -414,7 +414,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -429,7 +429,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -444,7 +444,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -459,7 +459,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -474,7 +474,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -489,7 +489,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -504,7 +504,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -519,7 +519,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -534,7 +534,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 5 */ DROP TABLE t1; SHOW TABLES; @@ -549,7 +549,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -564,7 +564,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -579,7 +579,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -594,7 +594,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -609,7 +609,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -624,7 +624,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) DEFAULT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -639,7 +639,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -654,7 +654,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -669,7 +669,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -684,7 +684,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -699,7 +699,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; @@ -714,7 +714,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 99 */ DROP TABLE t1; SHOW TABLES; diff --git a/mysql-test/suite/engines/funcs/r/tc_partition_reorg_hash_key.result b/mysql-test/suite/engines/funcs/r/tc_partition_reorg_hash_key.result index 083bbdebabb..3556bcf1e4f 100644 --- a/mysql-test/suite/engines/funcs/r/tc_partition_reorg_hash_key.result +++ b/mysql-test/suite/engines/funcs/r/tc_partition_reorg_hash_key.result @@ -487,7 +487,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -509,7 +509,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -531,7 +531,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -539,7 +539,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -565,7 +565,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -587,7 +587,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -609,7 +609,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -617,7 +617,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -643,7 +643,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -665,7 +665,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -687,7 +687,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -695,7 +695,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -721,7 +721,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -743,7 +743,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -765,7 +765,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -773,7 +773,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -799,7 +799,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -821,7 +821,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -843,7 +843,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -851,7 +851,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -877,7 +877,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -899,7 +899,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -921,7 +921,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -929,7 +929,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -955,7 +955,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -977,7 +977,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -999,7 +999,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -1007,7 +1007,7 @@ t1 CREATE TABLE `t1` ( `c1` tinyint(4) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -1033,7 +1033,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -1055,7 +1055,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -1077,7 +1077,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -1085,7 +1085,7 @@ t1 CREATE TABLE `t1` ( `c1` smallint(6) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -1111,7 +1111,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -1133,7 +1133,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -1155,7 +1155,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -1163,7 +1163,7 @@ t1 CREATE TABLE `t1` ( `c1` mediumint(9) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -1189,7 +1189,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -1211,7 +1211,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -1233,7 +1233,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -1241,7 +1241,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -1267,7 +1267,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -1289,7 +1289,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -1311,7 +1311,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -1319,7 +1319,7 @@ t1 CREATE TABLE `t1` ( `c1` int(11) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; @@ -1345,7 +1345,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 10 */ ALTER TABLE t1 ADD PARTITION PARTITIONS 10; SELECT * FROM t1 ORDER BY c1; @@ -1367,7 +1367,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 20 */ ALTER TABLE t1 COALESCE PARTITION 18; SELECT * FROM t1 ORDER BY c1; @@ -1389,7 +1389,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ SHOW CREATE TABLE t1; Table Create Table @@ -1397,7 +1397,7 @@ t1 CREATE TABLE `t1` ( `c1` bigint(20) NOT NULL, `c2` char(5) DEFAULT NULL ) ENGINE=ENGINE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY LINEAR KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY LINEAR KEY (c1) PARTITIONS 2 */ DROP TABLE t1; SHOW TABLES; diff --git a/mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result b/mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result index 94194cd6ce6..3ef62f2b050 100644 --- a/mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result @@ -567,7 +567,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -2575,7 +2575,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -3593,7 +3593,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -4581,7 +4581,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -6589,7 +6589,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -7607,7 +7607,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -8612,7 +8612,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -10684,7 +10684,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -11734,7 +11734,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -12754,7 +12754,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -14826,7 +14826,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -15876,7 +15876,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -16883,7 +16883,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -18895,7 +18895,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -19915,7 +19915,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -20905,7 +20905,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -22917,7 +22917,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -23937,7 +23937,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -24927,7 +24927,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -26939,7 +26939,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -27959,7 +27959,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, diff --git a/mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result b/mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result index 1d264febcf5..887ac403cdb 100644 --- a/mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result +++ b/mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result @@ -592,7 +592,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -2738,7 +2738,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -3830,7 +3830,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -4882,7 +4882,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -7028,7 +7028,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -8120,7 +8120,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, diff --git a/mysql-test/suite/parts/r/partition_alter1_1_innodb.result b/mysql-test/suite/parts/r/partition_alter1_1_innodb.result index d7d9e5b4356..66d84768b5e 100644 --- a/mysql-test/suite/parts/r/partition_alter1_1_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter1_1_innodb.result @@ -885,7 +885,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -2895,7 +2895,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -3913,7 +3913,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -4901,7 +4901,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -6911,7 +6911,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -7929,7 +7929,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -8934,7 +8934,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -11008,7 +11008,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -12058,7 +12058,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -13078,7 +13078,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -15152,7 +15152,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -16202,7 +16202,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, diff --git a/mysql-test/suite/parts/r/partition_alter1_1_myisam.result b/mysql-test/suite/parts/r/partition_alter1_1_myisam.result index 4030d09981a..9f616d04df3 100644 --- a/mysql-test/suite/parts/r/partition_alter1_1_myisam.result +++ b/mysql-test/suite/parts/r/partition_alter1_1_myisam.result @@ -751,7 +751,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -2899,7 +2899,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -3991,7 +3991,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -5043,7 +5043,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -7191,7 +7191,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -8283,7 +8283,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, diff --git a/mysql-test/suite/parts/r/partition_alter1_2_innodb.result b/mysql-test/suite/parts/r/partition_alter1_2_innodb.result index f0d69fc4c41..f1a1aeecb66 100644 --- a/mysql-test/suite/parts/r/partition_alter1_2_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter1_2_innodb.result @@ -513,7 +513,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -2315,7 +2315,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -3229,7 +3229,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -4113,7 +4113,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -5915,7 +5915,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -6829,7 +6829,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -7729,7 +7729,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -9595,7 +9595,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -10541,7 +10541,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -11445,7 +11445,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -13245,7 +13245,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -14159,7 +14159,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -15043,7 +15043,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -16843,7 +16843,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -17757,7 +17757,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -18658,7 +18658,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -20522,7 +20522,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -21468,7 +21468,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -22384,7 +22384,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -24248,7 +24248,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -25194,7 +25194,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -26095,7 +26095,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -27895,7 +27895,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -28809,7 +28809,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -29693,7 +29693,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -31493,7 +31493,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -32407,7 +32407,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -33307,7 +33307,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -35171,7 +35171,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -36117,7 +36117,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, diff --git a/mysql-test/suite/parts/r/partition_alter1_2_myisam.result b/mysql-test/suite/parts/r/partition_alter1_2_myisam.result index 06dd211706c..087262f5f89 100644 --- a/mysql-test/suite/parts/r/partition_alter1_2_myisam.result +++ b/mysql-test/suite/parts/r/partition_alter1_2_myisam.result @@ -537,7 +537,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -2477,7 +2477,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -3465,7 +3465,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -4417,7 +4417,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -6355,7 +6355,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -7343,7 +7343,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -8291,7 +8291,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -10229,7 +10229,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -11217,7 +11217,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -12165,7 +12165,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -14103,7 +14103,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -15091,7 +15091,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, diff --git a/mysql-test/suite/parts/r/partition_alter2_1_1_innodb.result b/mysql-test/suite/parts/r/partition_alter2_1_1_innodb.result index d687f58eca2..314044044bb 100644 --- a/mysql-test/suite/parts/r/partition_alter2_1_1_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter2_1_1_innodb.result @@ -530,7 +530,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -2396,7 +2396,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -3342,7 +3342,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -4296,7 +4296,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -6306,7 +6306,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -7324,7 +7324,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -8312,7 +8312,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -10322,7 +10322,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -11340,7 +11340,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -12345,7 +12345,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -14419,7 +14419,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -15469,7 +15469,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -16489,7 +16489,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -18563,7 +18563,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -19613,7 +19613,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, diff --git a/mysql-test/suite/parts/r/partition_alter2_1_2_innodb.result b/mysql-test/suite/parts/r/partition_alter2_1_2_innodb.result index 782ae78b13a..e824cf45ce9 100644 --- a/mysql-test/suite/parts/r/partition_alter2_1_2_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter2_1_2_innodb.result @@ -526,7 +526,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -2390,7 +2390,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -3336,7 +3336,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -4290,7 +4290,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -6298,7 +6298,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -7316,7 +7316,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -8304,7 +8304,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -10312,7 +10312,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -11330,7 +11330,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -12335,7 +12335,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -14407,7 +14407,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -15457,7 +15457,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -16477,7 +16477,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -18549,7 +18549,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -19599,7 +19599,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, diff --git a/mysql-test/suite/parts/r/partition_alter2_1_myisam.result b/mysql-test/suite/parts/r/partition_alter2_1_myisam.result index 0abb1631d1f..f2a13497159 100644 --- a/mysql-test/suite/parts/r/partition_alter2_1_myisam.result +++ b/mysql-test/suite/parts/r/partition_alter2_1_myisam.result @@ -539,7 +539,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -2479,7 +2479,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -3467,7 +3467,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -4469,7 +4469,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -6617,7 +6617,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -7709,7 +7709,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -8761,7 +8761,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -10909,7 +10909,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -12001,7 +12001,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -13005,7 +13005,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -14943,7 +14943,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -15931,7 +15931,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -16933,7 +16933,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -19079,7 +19079,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -20171,7 +20171,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -21223,7 +21223,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -23369,7 +23369,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -24461,7 +24461,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, diff --git a/mysql-test/suite/parts/r/partition_alter2_2_1_innodb.result b/mysql-test/suite/parts/r/partition_alter2_2_1_innodb.result index e2c6cd53c5b..faba21b41f7 100644 --- a/mysql-test/suite/parts/r/partition_alter2_2_1_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter2_2_1_innodb.result @@ -532,7 +532,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -2404,7 +2404,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -3352,7 +3352,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -4309,7 +4309,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -6325,7 +6325,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -7345,7 +7345,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -8337,7 +8337,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -10353,7 +10353,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -11373,7 +11373,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -12382,7 +12382,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -14462,7 +14462,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -15514,7 +15514,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -16538,7 +16538,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -18618,7 +18618,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -19670,7 +19670,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, diff --git a/mysql-test/suite/parts/r/partition_alter2_2_2_innodb.result b/mysql-test/suite/parts/r/partition_alter2_2_2_innodb.result index e96b2caa33b..2557cd5a219 100644 --- a/mysql-test/suite/parts/r/partition_alter2_2_2_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter2_2_2_innodb.result @@ -528,7 +528,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -2408,7 +2408,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -3362,7 +3362,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -4322,7 +4322,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -6346,7 +6346,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -7372,7 +7372,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -8366,7 +8366,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -10390,7 +10390,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -11416,7 +11416,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -12427,7 +12427,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -14515,7 +14515,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -15573,7 +15573,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -16599,7 +16599,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ # check prerequisites-1 success: 1 @@ -18687,7 +18687,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -19745,7 +19745,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, diff --git a/mysql-test/suite/parts/r/partition_alter2_2_myisam.result b/mysql-test/suite/parts/r/partition_alter2_2_myisam.result index 69bcdc29e30..70e869f48fb 100644 --- a/mysql-test/suite/parts/r/partition_alter2_2_myisam.result +++ b/mysql-test/suite/parts/r/partition_alter2_2_myisam.result @@ -541,7 +541,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -2487,7 +2487,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -3477,7 +3477,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -4483,7 +4483,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -6637,7 +6637,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -7731,7 +7731,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -8787,7 +8787,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -10941,7 +10941,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -12035,7 +12035,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -13043,7 +13043,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -14997,7 +14997,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -15993,7 +15993,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -17001,7 +17001,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -19163,7 +19163,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -20263,7 +20263,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int1`,`f_int2`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -21321,7 +21321,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL, UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -23483,7 +23483,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -24583,7 +24583,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, diff --git a/mysql-test/suite/parts/r/partition_alter3_innodb.result b/mysql-test/suite/parts/r/partition_alter3_innodb.result index 7e91ae4c7e7..7825a2350b0 100644 --- a/mysql-test/suite/parts/r/partition_alter3_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter3_innodb.result @@ -419,7 +419,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) */ +/*!50100 PARTITION BY KEY (f_int1) */ t1.frm t1.par EXPLAIN PARTITIONS SELECT COUNT(*) <> 1 FROM t1 WHERE f_int1 = 3; @@ -444,7 +444,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB) */ @@ -467,7 +467,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, @@ -491,7 +491,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, @@ -526,7 +526,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, @@ -552,7 +552,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, @@ -577,7 +577,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, @@ -601,7 +601,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB, @@ -624,7 +624,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB, PARTITION part7 ENGINE = InnoDB) */ @@ -646,7 +646,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB, PARTITION part1 ENGINE = InnoDB) */ t1.frm @@ -667,7 +667,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = InnoDB) */ t1.frm t1.par diff --git a/mysql-test/suite/parts/r/partition_alter3_myisam.result b/mysql-test/suite/parts/r/partition_alter3_myisam.result index 7b681d6ffc1..a5dec48e85c 100644 --- a/mysql-test/suite/parts/r/partition_alter3_myisam.result +++ b/mysql-test/suite/parts/r/partition_alter3_myisam.result @@ -511,7 +511,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) */ +/*!50100 PARTITION BY KEY (f_int1) */ t1#P#p0.MYD t1#P#p0.MYI t1.frm @@ -538,7 +538,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM) */ @@ -567,7 +567,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, @@ -599,7 +599,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, @@ -650,7 +650,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, @@ -690,7 +690,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, @@ -727,7 +727,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, @@ -761,7 +761,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM, @@ -792,7 +792,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM, PARTITION part7 ENGINE = MyISAM) */ @@ -820,7 +820,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM) */ t1#P#p0.MYD @@ -845,7 +845,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p0 ENGINE = MyISAM) */ t1#P#p0.MYD t1#P#p0.MYI diff --git a/mysql-test/suite/parts/r/partition_alter4_innodb.result b/mysql-test/suite/parts/r/partition_alter4_innodb.result index 0bd17bf26e2..46f3ed3c974 100644 --- a/mysql-test/suite/parts/r/partition_alter4_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter4_innodb.result @@ -534,7 +534,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -2412,7 +2412,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -3362,7 +3362,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -4284,7 +4284,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -6162,7 +6162,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -7112,7 +7112,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -8034,7 +8034,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -9912,7 +9912,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -10862,7 +10862,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -11784,7 +11784,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -13662,7 +13662,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -14612,7 +14612,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -15534,7 +15534,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -17412,7 +17412,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -18362,7 +18362,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -19287,7 +19287,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -21165,7 +21165,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -22115,7 +22115,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -23037,7 +23037,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -24915,7 +24915,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -25865,7 +25865,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -26787,7 +26787,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -28665,7 +28665,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -29615,7 +29615,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -30537,7 +30537,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -32415,7 +32415,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -33365,7 +33365,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -34287,7 +34287,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -36165,7 +36165,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -37115,7 +37115,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -38042,7 +38042,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -39924,7 +39924,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -40876,7 +40876,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -41800,7 +41800,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -43682,7 +43682,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -44634,7 +44634,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -45556,7 +45556,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -47434,7 +47434,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -48384,7 +48384,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -49306,7 +49306,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -51184,7 +51184,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -52134,7 +52134,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -53058,7 +53058,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -54940,7 +54940,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -55892,7 +55892,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -56813,7 +56813,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -58683,7 +58683,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -59629,7 +59629,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -60547,7 +60547,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -62417,7 +62417,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -63363,7 +63363,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -64601,7 +64601,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -66471,7 +66471,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -67417,7 +67417,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -68342,7 +68342,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -70220,7 +70220,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -71170,7 +71170,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -72092,7 +72092,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -73970,7 +73970,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -74920,7 +74920,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -75842,7 +75842,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -77720,7 +77720,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -78670,7 +78670,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -79592,7 +79592,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -81470,7 +81470,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -82420,7 +82420,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, @@ -83342,7 +83342,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = InnoDB, PARTITION part_2 ENGINE = InnoDB, PARTITION part_3 ENGINE = InnoDB, @@ -85220,7 +85220,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -86170,7 +86170,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = InnoDB, PARTITION part_2 VALUES IN (1) ENGINE = InnoDB, diff --git a/mysql-test/suite/parts/r/partition_alter4_myisam.result b/mysql-test/suite/parts/r/partition_alter4_myisam.result index 49cdc22f836..c74a105306c 100644 --- a/mysql-test/suite/parts/r/partition_alter4_myisam.result +++ b/mysql-test/suite/parts/r/partition_alter4_myisam.result @@ -543,7 +543,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -2495,7 +2495,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -3487,7 +3487,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -4441,7 +4441,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -6393,7 +6393,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -7385,7 +7385,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -8339,7 +8339,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -10291,7 +10291,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -11283,7 +11283,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -12237,7 +12237,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -14189,7 +14189,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -15181,7 +15181,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -16135,7 +16135,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -18087,7 +18087,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -19079,7 +19079,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -20036,7 +20036,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -21988,7 +21988,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -22980,7 +22980,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -23934,7 +23934,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -25886,7 +25886,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -26878,7 +26878,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -27832,7 +27832,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -29784,7 +29784,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -30776,7 +30776,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -31730,7 +31730,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -33682,7 +33682,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -34674,7 +34674,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -35628,7 +35628,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -37580,7 +37580,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -38572,7 +38572,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -39529,7 +39529,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -41481,7 +41481,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -42473,7 +42473,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -43427,7 +43427,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -45379,7 +45379,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -46371,7 +46371,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -47325,7 +47325,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -49277,7 +49277,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -50269,7 +50269,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -51223,7 +51223,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -53175,7 +53175,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -54167,7 +54167,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -55121,7 +55121,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -57073,7 +57073,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -58065,7 +58065,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -59018,7 +59018,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -60962,7 +60962,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -61950,7 +61950,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -62900,7 +62900,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -64844,7 +64844,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -65832,7 +65832,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -67102,7 +67102,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -69046,7 +69046,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -70034,7 +70034,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -70991,7 +70991,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -72943,7 +72943,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -73935,7 +73935,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -74889,7 +74889,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -76841,7 +76841,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -77833,7 +77833,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -78787,7 +78787,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -80739,7 +80739,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -81731,7 +81731,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -82685,7 +82685,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -84637,7 +84637,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -85629,7 +85629,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, @@ -86583,7 +86583,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION part_1 ENGINE = MyISAM, PARTITION part_2 ENGINE = MyISAM, PARTITION part_3 ENGINE = MyISAM, @@ -88535,7 +88535,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part_1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -89527,7 +89527,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part_1 VALUES IN (0) ENGINE = MyISAM, PARTITION part_2 VALUES IN (1) ENGINE = MyISAM, diff --git a/mysql-test/suite/parts/r/partition_basic_innodb.result b/mysql-test/suite/parts/r/partition_basic_innodb.result index e60a63bcde2..ea5a53fc5f4 100644 --- a/mysql-test/suite/parts/r/partition_basic_innodb.result +++ b/mysql-test/suite/parts/r/partition_basic_innodb.result @@ -528,7 +528,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -2390,7 +2390,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -3338,7 +3338,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -4253,7 +4253,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -6113,7 +6113,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -7057,7 +7057,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -8015,7 +8015,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -10025,7 +10025,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -11047,7 +11047,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -12035,7 +12035,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -14045,7 +14045,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -15067,7 +15067,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -16071,7 +16071,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -18145,7 +18145,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -19199,7 +19199,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -20208,7 +20208,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int2`,`f_int1`), UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -22216,7 +22216,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -23234,7 +23234,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -24222,7 +24222,7 @@ t1 CREATE TABLE `t1` ( PRIMARY KEY (`f_int1`,`f_int2`), UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -26230,7 +26230,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -27248,7 +27248,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, @@ -28252,7 +28252,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -30324,7 +30324,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), @@ -31374,7 +31374,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = InnoDB, PARTITION part2 VALUES IN (1) ENGINE = InnoDB, diff --git a/mysql-test/suite/parts/r/partition_basic_myisam.result b/mysql-test/suite/parts/r/partition_basic_myisam.result index 3898d853f4a..f70dae13bb6 100644 --- a/mysql-test/suite/parts/r/partition_basic_myisam.result +++ b/mysql-test/suite/parts/r/partition_basic_myisam.result @@ -533,7 +533,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -2453,7 +2453,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -3435,7 +3435,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -4374,7 +4374,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -6292,7 +6292,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -7270,7 +7270,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -8268,7 +8268,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) PARTITIONS 5 */ unified filelist @@ -10400,7 +10400,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -11488,7 +11488,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, @@ -12537,7 +12537,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) PARTITIONS 5 */ unified filelist @@ -14667,7 +14667,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), @@ -15751,7 +15751,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) ENGINE = MyISAM, PARTITION part2 VALUES IN (1) ENGINE = MyISAM, diff --git a/mysql-test/suite/parts/r/partition_basic_symlink_myisam.result b/mysql-test/suite/parts/r/partition_basic_symlink_myisam.result index 5548c20552f..146b3d361fb 100644 --- a/mysql-test/suite/parts/r/partition_basic_symlink_myisam.result +++ b/mysql-test/suite/parts/r/partition_basic_symlink_myisam.result @@ -563,7 +563,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, @@ -2573,7 +2573,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), @@ -3613,7 +3613,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, @@ -4596,7 +4596,7 @@ t1 CREATE TABLE `t1` ( `f_char2` char(20) DEFAULT NULL, `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, @@ -6604,7 +6604,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), @@ -7644,7 +7644,7 @@ t1 CREATE TABLE `t1` ( `f_charbig` varchar(1000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, @@ -8686,7 +8686,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1) +/*!50100 PARTITION BY KEY (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, @@ -10908,7 +10908,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), @@ -12054,7 +12054,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, @@ -13147,7 +13147,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx1` (`f_int1`,`f_int2`), UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (f_int1,f_int2) +/*!50100 PARTITION BY KEY (f_int1,f_int2) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, @@ -15367,7 +15367,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM), @@ -16513,7 +16513,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ABS(MOD(f_int1,2))) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int2) +SUBPARTITION BY KEY (f_int2) SUBPARTITIONS 3 (PARTITION part1 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM, @@ -19782,7 +19782,7 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `uidx2` (`f_int2`,`f_int1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) -SUBPARTITION BY KEY ALGORITHM = 2 (f_int1) +SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' ENGINE = MyISAM), diff --git a/mysql-test/suite/parts/r/partition_bit_innodb.result b/mysql-test/suite/parts/r/partition_bit_innodb.result index ae5b567cb9a..a9ae917f13d 100644 --- a/mysql-test/suite/parts/r/partition_bit_innodb.result +++ b/mysql-test/suite/parts/r/partition_bit_innodb.result @@ -9,7 +9,7 @@ t1 CREATE TABLE `t1` ( `a` bit(1) NOT NULL DEFAULT b'0', PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) */ +/*!50100 PARTITION BY KEY (a) */ drop table t1; create table t1 (a bit(0), primary key (a)) engine='INNODB' partition by key (a) ( @@ -21,7 +21,7 @@ t1 CREATE TABLE `t1` ( `a` bit(1) NOT NULL DEFAULT b'0', PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 ENGINE = InnoDB, PARTITION pa2 ENGINE = InnoDB) */ drop table t1; @@ -33,7 +33,7 @@ t1 CREATE TABLE `t1` ( `a` bit(64) NOT NULL DEFAULT b'0', PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 2 */ insert into t1 values (b'1111111111111111111111111111111111111111111111111111111111111111'), @@ -61,7 +61,7 @@ t1 CREATE TABLE `t1` ( `a` bit(64) NOT NULL DEFAULT b'0', PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -91,7 +91,7 @@ t2 CREATE TABLE `t2` ( `a` bit(1) NOT NULL DEFAULT b'0', PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 4 */ insert into t2 values (b'0'), (b'1'); select hex(a) from t2; @@ -104,7 +104,7 @@ Table Create Table t2 CREATE TABLE `t2` ( `a` bit(1) NOT NULL DEFAULT b'0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 4 */ select hex(a) from t2; hex(a) @@ -117,7 +117,7 @@ t2 CREATE TABLE `t2` ( `a` bit(1) NOT NULL DEFAULT b'0', PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 4 */ select hex(a) from t2; hex(a) @@ -137,7 +137,7 @@ t3 CREATE TABLE `t3` ( PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 2 (PARTITION pa1 VALUES LESS THAN (3) ENGINE = InnoDB, PARTITION pa2 VALUES LESS THAN (16) ENGINE = InnoDB, @@ -420,7 +420,7 @@ t4 CREATE TABLE `t4` ( PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 2 (PARTITION pa1 VALUES IN (0,1,2,3) ENGINE = InnoDB, PARTITION pa2 VALUES IN (4,5,6,7,8,9,10,11,12,13,14,15,16) ENGINE = InnoDB, diff --git a/mysql-test/suite/parts/r/partition_bit_myisam.result b/mysql-test/suite/parts/r/partition_bit_myisam.result index e6a85247907..680845c9971 100644 --- a/mysql-test/suite/parts/r/partition_bit_myisam.result +++ b/mysql-test/suite/parts/r/partition_bit_myisam.result @@ -9,7 +9,7 @@ t1 CREATE TABLE `t1` ( `a` bit(1) NOT NULL DEFAULT b'0', PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) */ +/*!50100 PARTITION BY KEY (a) */ drop table t1; create table t1 (a bit(0), primary key (a)) engine='MyISAM' partition by key (a) ( @@ -21,7 +21,7 @@ t1 CREATE TABLE `t1` ( `a` bit(1) NOT NULL DEFAULT b'0', PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 ENGINE = MyISAM, PARTITION pa2 ENGINE = MyISAM) */ drop table t1; @@ -33,7 +33,7 @@ t1 CREATE TABLE `t1` ( `a` bit(64) NOT NULL DEFAULT b'0', PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 2 */ insert into t1 values (b'1111111111111111111111111111111111111111111111111111111111111111'), @@ -61,7 +61,7 @@ t1 CREATE TABLE `t1` ( `a` bit(64) NOT NULL DEFAULT b'0', PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -91,7 +91,7 @@ t2 CREATE TABLE `t2` ( `a` bit(1) NOT NULL DEFAULT b'0', PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 4 */ insert into t2 values (b'0'), (b'1'); select hex(a) from t2; @@ -104,7 +104,7 @@ Table Create Table t2 CREATE TABLE `t2` ( `a` bit(1) NOT NULL DEFAULT b'0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 4 */ select hex(a) from t2; hex(a) @@ -117,7 +117,7 @@ t2 CREATE TABLE `t2` ( `a` bit(1) NOT NULL DEFAULT b'0', PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 4 */ select hex(a) from t2; hex(a) @@ -137,7 +137,7 @@ t3 CREATE TABLE `t3` ( PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 2 (PARTITION pa1 VALUES LESS THAN (3) ENGINE = MyISAM, PARTITION pa2 VALUES LESS THAN (16) ENGINE = MyISAM, @@ -420,7 +420,7 @@ t4 CREATE TABLE `t4` ( PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (a) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 2 (PARTITION pa1 VALUES IN (0,1,2,3) ENGINE = MyISAM, PARTITION pa2 VALUES IN (4,5,6,7,8,9,10,11,12,13,14,15,16) ENGINE = MyISAM, diff --git a/mysql-test/suite/parts/r/partition_char_innodb.result b/mysql-test/suite/parts/r/partition_char_innodb.result index e385d6bc427..dc7d259c2af 100644 --- a/mysql-test/suite/parts/r/partition_char_innodb.result +++ b/mysql-test/suite/parts/r/partition_char_innodb.result @@ -11,7 +11,7 @@ t1 CREATE TABLE `t1` ( `a` char(255) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -42,7 +42,7 @@ t2 CREATE TABLE `t2` ( `a` char(255) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ 26 inserts; insert into t2 values (repeat(char(ascii('a')+0),26+54)); @@ -116,7 +116,7 @@ t1 CREATE TABLE `t1` ( `a` binary(255) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -150,7 +150,7 @@ t2 CREATE TABLE `t2` ( `a` binary(255) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ 26 inserts; insert into t2 values (repeat(char(ascii('a')+0),26+54)); @@ -224,7 +224,7 @@ t1 CREATE TABLE `t1` ( `a` varchar(767) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -255,7 +255,7 @@ t2 CREATE TABLE `t2` ( `a` varchar(767) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ 26 inserts; insert into t2 values (repeat(char(ascii('a')+0),26*26)); @@ -329,7 +329,7 @@ t1 CREATE TABLE `t1` ( `a` varbinary(767) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -360,7 +360,7 @@ t2 CREATE TABLE `t2` ( `a` varbinary(767) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 30 */ 26 inserts; insert into t2 values (repeat(char(ascii('a')+0),26*26)); @@ -434,7 +434,7 @@ t1 CREATE TABLE `t1` ( `a` enum('A','B','C','D','E','F','G','H','I','J','K','L') NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -476,7 +476,7 @@ t2 CREATE TABLE `t2` ( `a` enum('1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ 0 inserts; insert into t2 values (char(ascii('A')+26)); @@ -563,7 +563,7 @@ t1 CREATE TABLE `t1` ( `a` set('A','B','C','D','E','F','G','H','I','J','K','L') NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -605,7 +605,7 @@ t2 CREATE TABLE `t2` ( `a` set('1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ insert into t2 values ('A'),('B'),('C'),('D'),('E'),('F'),('G'),('H'),('I'),('K'),('L'),('M'),('N'),('O'),('P'),('Q'),('S'),('T'),('U'),('V'),('X'),('Y'),('Z'); insert into t2 values ('A,B'),('B,C'),('C,D'),('D,E'),('E,F'),('F,G'),('G,H'),('H,I'),('I,J'),('K,L'),('L,M'),('M,N'),('N,O'),('O,P'),('P,Q'),('Q,R'),('S,T'),('T,U'),('U,V'),('V,W'),('X,Y'),('Y,Z'),('Z,A'); diff --git a/mysql-test/suite/parts/r/partition_char_myisam.result b/mysql-test/suite/parts/r/partition_char_myisam.result index 9f8c306b9f4..80f738c4b7b 100644 --- a/mysql-test/suite/parts/r/partition_char_myisam.result +++ b/mysql-test/suite/parts/r/partition_char_myisam.result @@ -11,7 +11,7 @@ t1 CREATE TABLE `t1` ( `a` char(255) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -42,7 +42,7 @@ t2 CREATE TABLE `t2` ( `a` char(255) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ 26 inserts; insert into t2 values (repeat(char(ascii('a')+0),26+54)); @@ -116,7 +116,7 @@ t1 CREATE TABLE `t1` ( `a` binary(255) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -150,7 +150,7 @@ t2 CREATE TABLE `t2` ( `a` binary(255) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ 26 inserts; insert into t2 values (repeat(char(ascii('a')+0),26+54)); @@ -224,7 +224,7 @@ t1 CREATE TABLE `t1` ( `a` varchar(767) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -255,7 +255,7 @@ t2 CREATE TABLE `t2` ( `a` varchar(767) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ 26 inserts; insert into t2 values (repeat(char(ascii('a')+0),26*26)); @@ -329,7 +329,7 @@ t1 CREATE TABLE `t1` ( `a` varbinary(767) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -360,7 +360,7 @@ t2 CREATE TABLE `t2` ( `a` varbinary(767) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 30 */ 26 inserts; insert into t2 values (repeat(char(ascii('a')+0),26*26)); @@ -434,7 +434,7 @@ t1 CREATE TABLE `t1` ( `a` enum('A','B','C','D','E','F','G','H','I','J','K','L') NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -476,7 +476,7 @@ t2 CREATE TABLE `t2` ( `a` enum('1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ 0 inserts; insert into t2 values (char(ascii('A')+26)); @@ -563,7 +563,7 @@ t1 CREATE TABLE `t1` ( `a` set('A','B','C','D','E','F','G','H','I','J','K','L') NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -605,7 +605,7 @@ t2 CREATE TABLE `t2` ( `a` set('1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ insert into t2 values ('A'),('B'),('C'),('D'),('E'),('F'),('G'),('H'),('I'),('K'),('L'),('M'),('N'),('O'),('P'),('Q'),('S'),('T'),('U'),('V'),('X'),('Y'),('Z'); insert into t2 values ('A,B'),('B,C'),('C,D'),('D,E'),('E,F'),('F,G'),('G,H'),('H,I'),('I,J'),('K,L'),('L,M'),('M,N'),('N,O'),('O,P'),('P,Q'),('Q,R'),('S,T'),('T,U'),('U,V'),('V,W'),('X,Y'),('Y,Z'),('Z,A'); diff --git a/mysql-test/suite/parts/r/partition_datetime_innodb.result b/mysql-test/suite/parts/r/partition_datetime_innodb.result index 0b878578188..48af3343d9a 100644 --- a/mysql-test/suite/parts/r/partition_datetime_innodb.result +++ b/mysql-test/suite/parts/r/partition_datetime_innodb.result @@ -10,7 +10,7 @@ t1 CREATE TABLE `t1` ( `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -40,7 +40,7 @@ t2 CREATE TABLE `t2` ( `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 12 */ insert into t2 values ('1975-01-01 0:1:1'), ('2020-12-31 10:11:12'), ('1980-10-14 13:14:15'), ('2000-06-15 14:15:16'); select * from t2; @@ -196,7 +196,7 @@ t1 CREATE TABLE `t1` ( `a` date NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -226,7 +226,7 @@ t2 CREATE TABLE `t2` ( `a` date NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 12 */ insert into t2 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15'); select * from t2; @@ -435,7 +435,7 @@ t3 CREATE TABLE `t3` ( PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (month(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = InnoDB, @@ -487,7 +487,7 @@ t4 CREATE TABLE `t4` ( PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (month(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3) ENGINE = InnoDB, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = InnoDB, @@ -536,7 +536,7 @@ t1 CREATE TABLE `t1` ( `a` time NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -566,7 +566,7 @@ t2 CREATE TABLE `t2` ( `a` time NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 12 */ insert into t2 values ('0:1:1'), ('10:11:12'), ('13:14:15'), ('14:15:16'); select * from t2; @@ -725,7 +725,7 @@ t3 CREATE TABLE `t3` ( PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (second(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (16) ENGINE = InnoDB, PARTITION quarter2 VALUES LESS THAN (31) ENGINE = InnoDB, @@ -871,7 +871,7 @@ t4 CREATE TABLE `t4` ( PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (second(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) ENGINE = InnoDB, PARTITION quarter2 VALUES IN (16,17,18,19,20,21,22,23,24,25,26,27,28,29,30) ENGINE = InnoDB, @@ -1014,7 +1014,7 @@ t1 CREATE TABLE `t1` ( `a` datetime NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -1044,7 +1044,7 @@ t2 CREATE TABLE `t2` ( `a` datetime NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 12 */ insert into t2 values ('1975-01-01 0:1:1'), ('2020-12-31 10:11:12'), ('1980-10-14 13:14:15'), ('2000-06-15 14:15:16'); select * from t2; @@ -1203,7 +1203,7 @@ t3 CREATE TABLE `t3` ( PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (month(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = InnoDB, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = InnoDB, @@ -1255,7 +1255,7 @@ t4 CREATE TABLE `t4` ( PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (month(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3) ENGINE = InnoDB, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = InnoDB, @@ -1304,7 +1304,7 @@ t1 CREATE TABLE `t1` ( `a` year(4) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -1334,7 +1334,7 @@ t2 CREATE TABLE `t2` ( `a` year(4) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 12 */ insert into t2 values ('1975'), ('2020'), ('1980'), ('2000'); select * from t2; diff --git a/mysql-test/suite/parts/r/partition_datetime_myisam.result b/mysql-test/suite/parts/r/partition_datetime_myisam.result index 5c87096f373..146f291546e 100644 --- a/mysql-test/suite/parts/r/partition_datetime_myisam.result +++ b/mysql-test/suite/parts/r/partition_datetime_myisam.result @@ -10,7 +10,7 @@ t1 CREATE TABLE `t1` ( `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -40,7 +40,7 @@ t2 CREATE TABLE `t2` ( `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 12 */ insert into t2 values ('1975-01-01 0:1:1'), ('2020-12-31 10:11:12'), ('1980-10-14 13:14:15'), ('2000-06-15 14:15:16'); select * from t2; @@ -196,7 +196,7 @@ t1 CREATE TABLE `t1` ( `a` date NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -226,7 +226,7 @@ t2 CREATE TABLE `t2` ( `a` date NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 12 */ insert into t2 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15'); select * from t2; @@ -435,7 +435,7 @@ t3 CREATE TABLE `t3` ( PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (month(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = MyISAM, @@ -487,7 +487,7 @@ t4 CREATE TABLE `t4` ( PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (month(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3) ENGINE = MyISAM, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = MyISAM, @@ -536,7 +536,7 @@ t1 CREATE TABLE `t1` ( `a` time NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -566,7 +566,7 @@ t2 CREATE TABLE `t2` ( `a` time NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 12 */ insert into t2 values ('0:1:1'), ('10:11:12'), ('13:14:15'), ('14:15:16'); select * from t2; @@ -725,7 +725,7 @@ t3 CREATE TABLE `t3` ( PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (second(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (16) ENGINE = MyISAM, PARTITION quarter2 VALUES LESS THAN (31) ENGINE = MyISAM, @@ -871,7 +871,7 @@ t4 CREATE TABLE `t4` ( PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (second(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) ENGINE = MyISAM, PARTITION quarter2 VALUES IN (16,17,18,19,20,21,22,23,24,25,26,27,28,29,30) ENGINE = MyISAM, @@ -1014,7 +1014,7 @@ t1 CREATE TABLE `t1` ( `a` datetime NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -1044,7 +1044,7 @@ t2 CREATE TABLE `t2` ( `a` datetime NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 12 */ insert into t2 values ('1975-01-01 0:1:1'), ('2020-12-31 10:11:12'), ('1980-10-14 13:14:15'), ('2000-06-15 14:15:16'); select * from t2; @@ -1203,7 +1203,7 @@ t3 CREATE TABLE `t3` ( PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (month(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES LESS THAN (4) ENGINE = MyISAM, PARTITION quarter2 VALUES LESS THAN (7) ENGINE = MyISAM, @@ -1255,7 +1255,7 @@ t4 CREATE TABLE `t4` ( PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (month(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION quarter1 VALUES IN (1,2,3) ENGINE = MyISAM, PARTITION quarter2 VALUES IN (4,5,6) ENGINE = MyISAM, @@ -1304,7 +1304,7 @@ t1 CREATE TABLE `t1` ( `a` year(4) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -1334,7 +1334,7 @@ t2 CREATE TABLE `t2` ( `a` year(4) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 12 */ insert into t2 values ('1975'), ('2020'), ('1980'), ('2000'); select * from t2; diff --git a/mysql-test/suite/parts/r/partition_decimal_innodb.result b/mysql-test/suite/parts/r/partition_decimal_innodb.result index 8c7617aa54e..c69c880cc6f 100644 --- a/mysql-test/suite/parts/r/partition_decimal_innodb.result +++ b/mysql-test/suite/parts/r/partition_decimal_innodb.result @@ -10,7 +10,7 @@ t1 CREATE TABLE `t1` ( `a` decimal(10,4) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -54,7 +54,7 @@ t2 CREATE TABLE `t2` ( `a` decimal(18,9) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 10 */ insert into t2 values (999999999.999999999), (-999999999.999999999), (-1.5), (-1), (0), (1.5), (1234.567), (-1234.567); select * from t2; @@ -101,7 +101,7 @@ t3 CREATE TABLE `t3` ( PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (floor(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 2 (PARTITION pa2 VALUES LESS THAN (2) ENGINE = InnoDB, PARTITION pa4 VALUES LESS THAN (4) ENGINE = InnoDB, @@ -155,7 +155,7 @@ t4 CREATE TABLE `t4` ( PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ceiling(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 2 (PARTITION pa2 VALUES IN (1,2) ENGINE = InnoDB, PARTITION pa4 VALUES IN (3,4) ENGINE = InnoDB, diff --git a/mysql-test/suite/parts/r/partition_decimal_myisam.result b/mysql-test/suite/parts/r/partition_decimal_myisam.result index 54392cfaf40..cdafb721ea4 100644 --- a/mysql-test/suite/parts/r/partition_decimal_myisam.result +++ b/mysql-test/suite/parts/r/partition_decimal_myisam.result @@ -10,7 +10,7 @@ t1 CREATE TABLE `t1` ( `a` decimal(10,4) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -54,7 +54,7 @@ t2 CREATE TABLE `t2` ( `a` decimal(18,9) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 10 */ insert into t2 values (999999999.999999999), (-999999999.999999999), (-1.5), (-1), (0), (1.5), (1234.567), (-1234.567); select * from t2; @@ -101,7 +101,7 @@ t3 CREATE TABLE `t3` ( PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (floor(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 2 (PARTITION pa2 VALUES LESS THAN (2) ENGINE = MyISAM, PARTITION pa4 VALUES LESS THAN (4) ENGINE = MyISAM, @@ -155,7 +155,7 @@ t4 CREATE TABLE `t4` ( PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ceiling(a)) -SUBPARTITION BY KEY ALGORITHM = 2 (a) +SUBPARTITION BY KEY (a) SUBPARTITIONS 2 (PARTITION pa2 VALUES IN (1,2) ENGINE = MyISAM, PARTITION pa4 VALUES IN (3,4) ENGINE = MyISAM, diff --git a/mysql-test/suite/parts/r/partition_float_innodb.result b/mysql-test/suite/parts/r/partition_float_innodb.result index a80606d42ac..d2f04a68629 100644 --- a/mysql-test/suite/parts/r/partition_float_innodb.result +++ b/mysql-test/suite/parts/r/partition_float_innodb.result @@ -10,7 +10,7 @@ t1 CREATE TABLE `t1` ( `a` float NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -46,7 +46,7 @@ t2 CREATE TABLE `t2` ( `a` float NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 10 */ insert into t2 values (-3.402823466E+38), (-3.402823466E+37), (-123.456), (0), (1234546.789), (123.456), (1.5); select * from t2; @@ -100,7 +100,7 @@ t1 CREATE TABLE `t1` ( `a` double NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -138,7 +138,7 @@ t2 CREATE TABLE `t2` ( `a` double NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 10 */ insert into t2 values (-2.2250738585072014E+208), (-2.2250738585072014E-208), (-1.5), (-1), (0), (1.5), (1234.567), (2.2250738585072014E+208); select * from t2; diff --git a/mysql-test/suite/parts/r/partition_float_myisam.result b/mysql-test/suite/parts/r/partition_float_myisam.result index 035cdd7424d..2d52d095989 100644 --- a/mysql-test/suite/parts/r/partition_float_myisam.result +++ b/mysql-test/suite/parts/r/partition_float_myisam.result @@ -10,7 +10,7 @@ t1 CREATE TABLE `t1` ( `a` float NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -46,7 +46,7 @@ t2 CREATE TABLE `t2` ( `a` float NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 10 */ insert into t2 values (-3.402823466E+38), (-3.402823466E+37), (-123.456), (0), (1234546.789), (123.456), (1.5); select * from t2; @@ -100,7 +100,7 @@ t1 CREATE TABLE `t1` ( `a` double NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -138,7 +138,7 @@ t2 CREATE TABLE `t2` ( `a` double NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 10 */ insert into t2 values (-2.2250738585072014E+208), (-2.2250738585072014E-208), (-1.5), (-1), (0), (1.5), (1234.567), (2.2250738585072014E+208); select * from t2; diff --git a/mysql-test/suite/parts/r/partition_int_innodb.result b/mysql-test/suite/parts/r/partition_int_innodb.result index b419f5d627e..7a51b80d5d7 100644 --- a/mysql-test/suite/parts/r/partition_int_innodb.result +++ b/mysql-test/suite/parts/r/partition_int_innodb.result @@ -10,7 +10,7 @@ t1 CREATE TABLE `t1` ( `a` tinyint(3) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -46,7 +46,7 @@ t2 CREATE TABLE `t2` ( `a` tinyint(3) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 8 */ insert into t2 values (255), (254), (253), (252); select * from t2; @@ -78,7 +78,7 @@ t3 CREATE TABLE `t3` ( `a` tinyint(4) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 7 */ insert into t3 values (127), (126), (125), (124), (-128), (-127), (1), (-1), (0); select * from t3; @@ -119,7 +119,7 @@ t1 CREATE TABLE `t1` ( `a` smallint(5) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -155,7 +155,7 @@ t2 CREATE TABLE `t2` ( `a` smallint(5) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 8 */ insert into t2 values (65535), (65534), (65533), (65532); select * from t2; @@ -187,7 +187,7 @@ t3 CREATE TABLE `t3` ( `a` smallint(6) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 7 */ insert into t3 values (32767), (32766), (32765), (32764), (-32768), (-32767), (1), (-1), (0); select * from t3; @@ -228,7 +228,7 @@ t1 CREATE TABLE `t1` ( `a` int(10) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -264,7 +264,7 @@ t2 CREATE TABLE `t2` ( `a` int(10) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 8 */ insert into t2 values (4294967295), (4294967294), (4294967293), (4294967292); select * from t2; @@ -296,7 +296,7 @@ t3 CREATE TABLE `t3` ( `a` int(11) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 7 */ insert into t3 values (2147483647), (2147483646), (2147483645), (2147483644), (-2147483648), (-2147483647), (1), (-1), (0); select * from t3; @@ -337,7 +337,7 @@ t1 CREATE TABLE `t1` ( `a` mediumint(8) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -373,7 +373,7 @@ t2 CREATE TABLE `t2` ( `a` mediumint(8) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 8 */ insert into t2 values (16777215), (16777214), (16777213), (16777212); select * from t2; @@ -405,7 +405,7 @@ t3 CREATE TABLE `t3` ( `a` mediumint(9) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 7 */ insert into t3 values (8388607), (8388606), (8388605), (8388604), (-8388608), (-8388607), (1), (-1), (0); select * from t3; @@ -446,7 +446,7 @@ t1 CREATE TABLE `t1` ( `a` bigint(20) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -494,7 +494,7 @@ t2 CREATE TABLE `t2` ( `a` bigint(20) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 8 */ insert into t2 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE), (18446744073709551613), (18446744073709551612); select * from t2; @@ -526,7 +526,7 @@ t3 CREATE TABLE `t3` ( `a` bigint(20) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 7 */ insert into t3 values (9223372036854775807), (9223372036854775806), (9223372036854775805), (9223372036854775804), (-9223372036854775808), (-9223372036854775807), (1), (-1), (0); select * from t3; diff --git a/mysql-test/suite/parts/r/partition_int_myisam.result b/mysql-test/suite/parts/r/partition_int_myisam.result index a7520e8f3e3..4387bbfdd78 100644 --- a/mysql-test/suite/parts/r/partition_int_myisam.result +++ b/mysql-test/suite/parts/r/partition_int_myisam.result @@ -10,7 +10,7 @@ t1 CREATE TABLE `t1` ( `a` tinyint(3) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -46,7 +46,7 @@ t2 CREATE TABLE `t2` ( `a` tinyint(3) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 8 */ insert into t2 values (255), (254), (253), (252); select * from t2; @@ -78,7 +78,7 @@ t3 CREATE TABLE `t3` ( `a` tinyint(4) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 7 */ insert into t3 values (127), (126), (125), (124), (-128), (-127), (1), (-1), (0); select * from t3; @@ -119,7 +119,7 @@ t1 CREATE TABLE `t1` ( `a` smallint(5) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -155,7 +155,7 @@ t2 CREATE TABLE `t2` ( `a` smallint(5) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 8 */ insert into t2 values (65535), (65534), (65533), (65532); select * from t2; @@ -187,7 +187,7 @@ t3 CREATE TABLE `t3` ( `a` smallint(6) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 7 */ insert into t3 values (32767), (32766), (32765), (32764), (-32768), (-32767), (1), (-1), (0); select * from t3; @@ -228,7 +228,7 @@ t1 CREATE TABLE `t1` ( `a` int(10) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -264,7 +264,7 @@ t2 CREATE TABLE `t2` ( `a` int(10) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 8 */ insert into t2 values (4294967295), (4294967294), (4294967293), (4294967292); select * from t2; @@ -296,7 +296,7 @@ t3 CREATE TABLE `t3` ( `a` int(11) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 7 */ insert into t3 values (2147483647), (2147483646), (2147483645), (2147483644), (-2147483648), (-2147483647), (1), (-1), (0); select * from t3; @@ -337,7 +337,7 @@ t1 CREATE TABLE `t1` ( `a` mediumint(8) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -373,7 +373,7 @@ t2 CREATE TABLE `t2` ( `a` mediumint(8) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 8 */ insert into t2 values (16777215), (16777214), (16777213), (16777212); select * from t2; @@ -405,7 +405,7 @@ t3 CREATE TABLE `t3` ( `a` mediumint(9) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 7 */ insert into t3 values (8388607), (8388606), (8388605), (8388604), (-8388608), (-8388607), (1), (-1), (0); select * from t3; @@ -446,7 +446,7 @@ t1 CREATE TABLE `t1` ( `a` bigint(20) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -494,7 +494,7 @@ t2 CREATE TABLE `t2` ( `a` bigint(20) unsigned NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 8 */ insert into t2 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE), (18446744073709551613), (18446744073709551612); select * from t2; @@ -526,7 +526,7 @@ t3 CREATE TABLE `t3` ( `a` bigint(20) NOT NULL, PRIMARY KEY (`a`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) PARTITIONS 7 */ insert into t3 values (9223372036854775807), (9223372036854775806), (9223372036854775805), (9223372036854775804), (-9223372036854775808), (-9223372036854775807), (1), (-1), (0); select * from t3; diff --git a/mysql-test/suite/parts/r/partition_mgm_lc0_archive.result b/mysql-test/suite/parts/r/partition_mgm_lc0_archive.result index d5a4adc298c..f4d76874b4c 100644 --- a/mysql-test/suite/parts/r/partition_mgm_lc0_archive.result +++ b/mysql-test/suite/parts/r/partition_mgm_lc0_archive.result @@ -56,7 +56,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE, @@ -84,7 +84,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */ @@ -120,7 +120,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */ @@ -199,7 +199,7 @@ Table Create Table tablea CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE, diff --git a/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result b/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result index 5c933a3ebab..19f16780d13 100644 --- a/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result +++ b/mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result @@ -56,7 +56,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB, @@ -84,7 +84,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */ @@ -120,7 +120,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */ @@ -199,7 +199,7 @@ Table Create Table tablea CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB, diff --git a/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result b/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result index 3cc03cc3e5e..69a43b64d87 100644 --- a/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result +++ b/mysql-test/suite/parts/r/partition_mgm_lc0_memory.result @@ -56,7 +56,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY, @@ -84,7 +84,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */ @@ -120,7 +120,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */ @@ -199,7 +199,7 @@ Table Create Table tablea CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY, diff --git a/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result b/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result index 98f39b0fcec..9b4e85be9d0 100644 --- a/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result +++ b/mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result @@ -56,7 +56,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, @@ -84,7 +84,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */ @@ -120,7 +120,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */ @@ -199,7 +199,7 @@ Table Create Table tablea CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, diff --git a/mysql-test/suite/parts/r/partition_mgm_lc1_archive.result b/mysql-test/suite/parts/r/partition_mgm_lc1_archive.result index 79aad61bbec..1113e7dcb0c 100644 --- a/mysql-test/suite/parts/r/partition_mgm_lc1_archive.result +++ b/mysql-test/suite/parts/r/partition_mgm_lc1_archive.result @@ -56,7 +56,7 @@ Table Create Table TableA CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE, @@ -84,7 +84,7 @@ Table Create Table TableA CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */ @@ -120,7 +120,7 @@ Table Create Table TableA CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */ @@ -192,7 +192,7 @@ Table Create Table tablea CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */ diff --git a/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result b/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result index 399230237ad..952f4136cb6 100644 --- a/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result +++ b/mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result @@ -56,7 +56,7 @@ Table Create Table TableA CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB, @@ -84,7 +84,7 @@ Table Create Table TableA CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */ @@ -120,7 +120,7 @@ Table Create Table TableA CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */ @@ -192,7 +192,7 @@ Table Create Table tablea CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */ diff --git a/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result b/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result index c6b9edd9ff5..435a0d8313e 100644 --- a/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result +++ b/mysql-test/suite/parts/r/partition_mgm_lc1_memory.result @@ -56,7 +56,7 @@ Table Create Table TableA CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY, @@ -84,7 +84,7 @@ Table Create Table TableA CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */ @@ -120,7 +120,7 @@ Table Create Table TableA CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */ @@ -192,7 +192,7 @@ Table Create Table tablea CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */ diff --git a/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result b/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result index 9a7231e99e7..3a90ce4d73c 100644 --- a/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result +++ b/mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result @@ -56,7 +56,7 @@ Table Create Table TableA CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, @@ -84,7 +84,7 @@ Table Create Table TableA CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */ @@ -120,7 +120,7 @@ Table Create Table TableA CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */ @@ -192,7 +192,7 @@ Table Create Table tablea CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */ diff --git a/mysql-test/suite/parts/r/partition_mgm_lc2_archive.result b/mysql-test/suite/parts/r/partition_mgm_lc2_archive.result index 42e59f724f4..e71803fcac9 100644 --- a/mysql-test/suite/parts/r/partition_mgm_lc2_archive.result +++ b/mysql-test/suite/parts/r/partition_mgm_lc2_archive.result @@ -56,7 +56,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE, @@ -84,7 +84,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = ARCHIVE, PARTITION partB ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */ @@ -120,7 +120,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */ @@ -192,7 +192,7 @@ Table Create Table tablea CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=ARCHIVE DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = ARCHIVE, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = ARCHIVE, PARTITION Partc ENGINE = ARCHIVE) */ diff --git a/mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result b/mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result index 302ef7a7b2a..8e42bc9eb62 100644 --- a/mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result +++ b/mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result @@ -56,7 +56,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB, @@ -84,7 +84,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = InnoDB, PARTITION partB ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */ @@ -120,7 +120,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */ @@ -192,7 +192,7 @@ Table Create Table tablea CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = InnoDB, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = InnoDB, PARTITION Partc ENGINE = InnoDB) */ diff --git a/mysql-test/suite/parts/r/partition_mgm_lc2_memory.result b/mysql-test/suite/parts/r/partition_mgm_lc2_memory.result index 21124e3fed7..24047912ab1 100644 --- a/mysql-test/suite/parts/r/partition_mgm_lc2_memory.result +++ b/mysql-test/suite/parts/r/partition_mgm_lc2_memory.result @@ -56,7 +56,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY, @@ -84,7 +84,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MEMORY, PARTITION partB ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */ @@ -120,7 +120,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */ @@ -192,7 +192,7 @@ Table Create Table tablea CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=MEMORY DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MEMORY, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MEMORY, PARTITION Partc ENGINE = MEMORY) */ diff --git a/mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result b/mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result index a77f44191a5..7a61a811ea3 100644 --- a/mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result +++ b/mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result @@ -56,7 +56,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM, @@ -84,7 +84,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION parta ENGINE = MyISAM, PARTITION partB ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */ @@ -120,7 +120,7 @@ Table Create Table TableA CREATE TABLE `TableA` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */ @@ -192,7 +192,7 @@ Table Create Table tablea CREATE TABLE `tablea` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a) +/*!50100 PARTITION BY KEY (a) (PARTITION partB COMMENT = 'Previusly named parta' ENGINE = MyISAM, PARTITION parta COMMENT = 'Previusly named partB' ENGINE = MyISAM, PARTITION Partc ENGINE = MyISAM) */ diff --git a/mysql-test/suite/parts/r/partition_special_innodb.result b/mysql-test/suite/parts/r/partition_special_innodb.result index 1b793b8c7df..c1213e86afc 100644 --- a/mysql-test/suite/parts/r/partition_special_innodb.result +++ b/mysql-test/suite/parts/r/partition_special_innodb.result @@ -13,7 +13,7 @@ t1 CREATE TABLE `t1` ( `d` enum('m','w') NOT NULL DEFAULT 'm', PRIMARY KEY (`a`,`b`,`c`,`d`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a,b,c,d) +/*!50100 PARTITION BY KEY (a,b,c,d) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -55,7 +55,7 @@ t1 CREATE TABLE `t1` ( `i` char(255) DEFAULT NULL, PRIMARY KEY (`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a,b,c,d,e,f,g,h) +/*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -105,7 +105,7 @@ t1 CREATE TABLE `t1` ( `i` char(255) DEFAULT NULL, PRIMARY KEY (`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`,`a1`,`b1`,`c1`,`d1`,`e1`,`f1`,`g1`,`h1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1) +/*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, @@ -178,7 +178,7 @@ t1 CREATE TABLE `t1` ( `i` char(255) DEFAULT NULL, PRIMARY KEY (`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`,`a1`,`b1`,`c1`,`d1`,`e1`,`f1`,`g1`,`h1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a,b,c,d,e,f,g,h) +/*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, diff --git a/mysql-test/suite/parts/r/partition_special_myisam.result b/mysql-test/suite/parts/r/partition_special_myisam.result index 9c11201733f..bc8036ba861 100644 --- a/mysql-test/suite/parts/r/partition_special_myisam.result +++ b/mysql-test/suite/parts/r/partition_special_myisam.result @@ -13,7 +13,7 @@ t1 CREATE TABLE `t1` ( `d` enum('m','w') NOT NULL DEFAULT 'm', PRIMARY KEY (`a`,`b`,`c`,`d`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a,b,c,d) +/*!50100 PARTITION BY KEY (a,b,c,d) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -55,7 +55,7 @@ t1 CREATE TABLE `t1` ( `i` char(255) DEFAULT NULL, PRIMARY KEY (`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a,b,c,d,e,f,g,h) +/*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -105,7 +105,7 @@ t1 CREATE TABLE `t1` ( `i` char(255) DEFAULT NULL, PRIMARY KEY (`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`,`a1`,`b1`,`c1`,`d1`,`e1`,`f1`,`g1`,`h1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1) +/*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, @@ -178,7 +178,7 @@ t1 CREATE TABLE `t1` ( `i` char(255) DEFAULT NULL, PRIMARY KEY (`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`,`a1`,`b1`,`c1`,`d1`,`e1`,`f1`,`g1`,`h1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (a,b,c,d,e,f,g,h) +/*!50100 PARTITION BY KEY (a,b,c,d,e,f,g,h) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, diff --git a/mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result b/mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result index 232e0055162..c63ba401085 100644 --- a/mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result +++ b/mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result @@ -550,7 +550,7 @@ t16 CREATE TABLE `t16` ( `c5` char(5) DEFAULT NULL, PRIMARY KEY (`c1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ *** Show table on Slave **** SHOW CREATE TABLE t16; @@ -565,7 +565,7 @@ t16 CREATE TABLE `t16` ( `c7` timestamp NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`c1`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ *** DROP TABLE t16 *** DROP TABLE t16; diff --git a/mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result b/mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result index d99f9e6a66b..4e483da72e4 100644 --- a/mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result +++ b/mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result @@ -550,7 +550,7 @@ t16 CREATE TABLE `t16` ( `c5` char(5) DEFAULT NULL, PRIMARY KEY (`c1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ *** Show table on Slave **** SHOW CREATE TABLE t16; @@ -565,7 +565,7 @@ t16 CREATE TABLE `t16` ( `c7` timestamp NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`c1`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 (c1) +/*!50100 PARTITION BY KEY (c1) PARTITIONS 4 */ *** DROP TABLE t16 *** DROP TABLE t16; diff --git a/mysql-test/suite/rpl/r/rpl_row_basic_8partition.result b/mysql-test/suite/rpl/r/rpl_row_basic_8partition.result index 4585e0628c9..c7241c52353 100644 --- a/mysql-test/suite/rpl/r/rpl_row_basic_8partition.result +++ b/mysql-test/suite/rpl/r/rpl_row_basic_8partition.result @@ -509,7 +509,7 @@ t1 CREATE TABLE `t1` ( `t` date DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 () +/*!50100 PARTITION BY KEY () PARTITIONS 4 */ --- On slave --- SHOW CREATE TABLE t1; @@ -526,7 +526,7 @@ t1 CREATE TABLE `t1` ( `t` date DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 () +/*!50100 PARTITION BY KEY () PARTITIONS 4 */ "--- Insert into t1 --" as ""; --- Select from t1 on master --- @@ -582,7 +582,7 @@ t1 CREATE TABLE `t1` ( `t` date DEFAULT NULL, PRIMARY KEY (`id`,`total`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 () +/*!50100 PARTITION BY KEY () PARTITIONS 4 */ --- On slave --- SHOW CREATE TABLE t1; @@ -599,7 +599,7 @@ t1 CREATE TABLE `t1` ( `t` date DEFAULT NULL, PRIMARY KEY (`id`,`total`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 () +/*!50100 PARTITION BY KEY () PARTITIONS 4 */ "--- Insert into t1 --" as ""; --- Select from t1 on master --- @@ -655,7 +655,7 @@ t1 CREATE TABLE `t1` ( `t` date DEFAULT NULL, PRIMARY KEY (`id`,`total`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 () +/*!50100 PARTITION BY KEY () PARTITIONS 4 */ --- On slave --- SHOW CREATE TABLE t1; @@ -672,7 +672,7 @@ t1 CREATE TABLE `t1` ( `t` date DEFAULT NULL, PRIMARY KEY (`id`,`total`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -/*!50100 PARTITION BY KEY ALGORITHM = 2 () +/*!50100 PARTITION BY KEY () PARTITIONS 4 */ "--- Insert into t1 --" as ""; --- Select from t1 on master --- diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc index 4afae052b76..859b3891b25 100644 --- a/sql/ha_partition.cc +++ b/sql/ha_partition.cc @@ -7968,6 +7968,7 @@ int ha_partition::check_for_upgrade(HA_CHECK_OPT *check_opt) true, true, NULL, + NULL, NULL)) || /* Also check that the length is smaller than the output field! */ (part_buf_len + db_name.length() + table_name.length()) >= @@ -7991,8 +7992,8 @@ int ha_partition::check_for_upgrade(HA_CHECK_OPT *check_opt) part_buf); } m_part_info->key_algorithm= old_algorithm; + DBUG_RETURN(error); } - break; default: /* Not affected! */ ; diff --git a/sql/handler.cc b/sql/handler.cc index dc4fc9ce210..98d6e8fb103 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -3324,6 +3324,9 @@ int handler::ha_check(THD *thd, HA_CHECK_OPT *check_opt) } if ((error= check(thd, check_opt))) return error; + /* Skip updating frm version if not main handler. */ + if (table->file != this) + return error; return update_frm_version(table); } diff --git a/sql/partition_info.cc b/sql/partition_info.cc index 5a7d0bf0c43..056676503dd 100644 --- a/sql/partition_info.cc +++ b/sql/partition_info.cc @@ -2302,6 +2302,16 @@ bool partition_info::has_same_partitioning(partition_info *new_part_info) { DBUG_ENTER("partition_info::has_same_partitioning"); + DBUG_ASSERT(part_field_array && part_field_array[0]); + + /* + Only consider pre 5.5.3 .frm's to have same partitioning as + a new one with KEY ALGORITHM = 1 (). + */ + + if (part_field_array[0]->table->s->mysql_version >= 50503) + DBUG_RETURN(false); + if (!new_part_info || part_type != new_part_info->part_type || num_parts != new_part_info->num_parts || @@ -2495,12 +2505,10 @@ bool partition_info::has_same_partitioning(partition_info *new_part_info) /* Only if key_algorithm was not specified before and it is now set, - consider this as nothing was changed! - But if already set, consider it as a change, and force rebuild! + consider this as nothing was changed, and allow change without rebuild! */ - DBUG_ASSERT(new_part_info->key_algorithm != - partition_info::KEY_ALGORITHM_NONE); - if (key_algorithm != partition_info::KEY_ALGORITHM_NONE) + if (key_algorithm != partition_info::KEY_ALGORITHM_NONE || + new_part_info->key_algorithm == partition_info::KEY_ALGORITHM_NONE) DBUG_RETURN(false); DBUG_RETURN(true); diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index a64520a298d..6850f5ada63 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -2412,6 +2412,58 @@ end: return err; } + +/** + Add 'KEY' word, with optional 'ALGORTIHM = N'. + + @param fptr File to write to. + @param part_info partition_info holding the used key_algorithm + @param current_comment_start NULL, or comment string encapsulating the + PARTITION BY clause. + + @return Operation status. + @retval 0 Success + @retval != 0 Failure +*/ + +static int add_key_with_algorithm(File fptr, partition_info *part_info, + const char *current_comment_start) +{ + int err= 0; + err+= add_part_key_word(fptr, partition_keywords[PKW_KEY].str); + + /* + current_comment_start is given when called from SHOW CREATE TABLE, + Then only add ALGORITHM = 1, not the default 2 or non-set 0! + For .frm current_comment_start is NULL, then add ALGORITHM if != 0. + */ + if (part_info->key_algorithm == partition_info::KEY_ALGORITHM_51 || // SHOW + (!current_comment_start && // .frm + (part_info->key_algorithm != partition_info::KEY_ALGORITHM_NONE))) + { + /* If we already are within a comment, end that comment first. */ + if (current_comment_start) + err+= add_string(fptr, "*/ "); + err+= add_string(fptr, "/*!50531 "); + err+= add_part_key_word(fptr, partition_keywords[PKW_ALGORITHM].str); + err+= add_equal(fptr); + err+= add_space(fptr); + err+= add_int(fptr, part_info->key_algorithm); + err+= add_space(fptr); + err+= add_string(fptr, "*/ "); + if (current_comment_start) + { + /* Skip new line. */ + if (current_comment_start[0] == '\n') + current_comment_start++; + err+= add_string(fptr, current_comment_start); + err+= add_space(fptr); + } + } + return err; +} + + /* Generate the partition syntax from the partition data structure. Useful for support of generating defaults, SHOW CREATE TABLES @@ -2456,7 +2508,8 @@ char *generate_partition_syntax(partition_info *part_info, bool use_sql_alloc, bool show_partition_options, HA_CREATE_INFO *create_info, - Alter_info *alter_info) + Alter_info *alter_info, + const char *current_comment_start) { uint i,j, tot_num_parts, num_subparts; partition_element *part_elem; @@ -2490,18 +2543,8 @@ char *generate_partition_syntax(partition_info *part_info, err+= add_string(fptr, partition_keywords[PKW_LINEAR].str); if (part_info->list_of_part_fields) { - err+= add_part_key_word(fptr, partition_keywords[PKW_KEY].str); - if (part_info->key_algorithm != partition_info::KEY_ALGORITHM_NONE) - { - /* - Can't add a !50530 comment, since we are already within a comment! - */ - err+= add_part_key_word(fptr, partition_keywords[PKW_ALGORITHM].str); - err+= add_equal(fptr); - err+= add_space(fptr); - err+= add_int(fptr, part_info->key_algorithm); - err+= add_space(fptr); - } + err+= add_key_with_algorithm(fptr, part_info, + current_comment_start); err+= add_part_field_list(fptr, part_info->part_field_list); } else @@ -2541,19 +2584,9 @@ char *generate_partition_syntax(partition_info *part_info, err+= add_string(fptr, partition_keywords[PKW_LINEAR].str); if (part_info->list_of_subpart_fields) { - add_part_key_word(fptr, partition_keywords[PKW_KEY].str); - if (part_info->key_algorithm != partition_info::KEY_ALGORITHM_NONE) - { - /* - Can't add a !50530 comment, since we are already within a comment! - */ - err+= add_part_key_word(fptr, partition_keywords[PKW_ALGORITHM].str); - err+= add_equal(fptr); - err+= add_space(fptr); - err+= add_int(fptr, part_info->key_algorithm); - err+= add_space(fptr); - } - add_part_field_list(fptr, part_info->subpart_field_list); + err+= add_key_with_algorithm(fptr, part_info, + current_comment_start); + err+= add_part_field_list(fptr, part_info->subpart_field_list); } else err+= add_part_key_word(fptr, partition_keywords[PKW_HASH].str); diff --git a/sql/sql_partition.h b/sql/sql_partition.h index 998e4b25f0b..f232eaa0629 100644 --- a/sql/sql_partition.h +++ b/sql/sql_partition.h @@ -1,7 +1,7 @@ #ifndef SQL_PARTITION_INCLUDED #define SQL_PARTITION_INCLUDED -/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -268,7 +268,8 @@ char *generate_partition_syntax(partition_info *part_info, uint *buf_length, bool use_sql_alloc, bool show_partition_options, HA_CREATE_INFO *create_info, - Alter_info *alter_info); + Alter_info *alter_info, + const char *current_comment_start); #endif void create_partition_name(char *out, const char *in1, diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 326f09e7955..4a6568b605a 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -1528,24 +1528,30 @@ int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet, } #ifdef WITH_PARTITION_STORAGE_ENGINE { - /* - Partition syntax for CREATE TABLE is at the end of the syntax. - */ - uint part_syntax_len; - char *part_syntax; if (table->part_info && - (!table->part_info->is_auto_partitioned) && - ((part_syntax= generate_partition_syntax(table->part_info, + !((table->s->db_type()->partition_flags() & HA_USE_AUTO_PARTITION) && + table->part_info->is_auto_partitioned)) + { + /* + Partition syntax for CREATE TABLE is at the end of the syntax. + */ + uint part_syntax_len; + char *part_syntax; + String comment_start; + table->part_info->set_show_version_string(&comment_start); + if ((part_syntax= generate_partition_syntax(table->part_info, &part_syntax_len, FALSE, show_table_options, - NULL, NULL)))) - { - table->part_info->set_show_version_string(packet); - if (packet->append(part_syntax, part_syntax_len) || - packet->append(STRING_WITH_LEN(" */"))) - error= 1; - my_free(part_syntax); + NULL, NULL, + comment_start.c_ptr()))) + { + packet->append(comment_start); + if (packet->append(part_syntax, part_syntax_len) || + packet->append(STRING_WITH_LEN(" */"))) + error= 1; + my_free(part_syntax); + } } } #endif diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 8bbe29cb3cf..cf4d7a9d955 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1694,7 +1694,8 @@ bool mysql_write_frm(ALTER_PARTITION_PARAM_TYPE *lpt, uint flags) &syntax_len, TRUE, TRUE, lpt->create_info, - lpt->alter_info))) + lpt->alter_info, + NULL))) { DBUG_RETURN(TRUE); } @@ -1787,7 +1788,8 @@ bool mysql_write_frm(ALTER_PARTITION_PARAM_TYPE *lpt, uint flags) &syntax_len, TRUE, TRUE, lpt->create_info, - lpt->alter_info))) + lpt->alter_info, + NULL))) { error= 1; goto err; @@ -4082,7 +4084,8 @@ bool mysql_create_table_no_lock(THD *thd, &syntax_len, TRUE, TRUE, create_info, - alter_info))) + alter_info, + NULL))) goto err; part_info->part_info_string= part_syntax_buf; part_info->part_info_len= syntax_len; From eb3814b0b346a57a3ed0b79e10f2fe18515b8494 Mon Sep 17 00:00:00 2001 From: Shivji Kumar Jha Date: Fri, 15 Feb 2013 00:38:42 +0530 Subject: [PATCH 063/172] BUG#12359942- REPLICATION TEST FROM ENGINE SUITE RPL_ROW_UNTIL TIMES OUT post push fix: rpl_stm_until.test was disabled because of this bug. Enabled and fixed it. Removed a part of the test that was obsolete. It tested replication from 4.0 master to 5.0 slave. --- mysql-test/suite/rpl/r/rpl_stm_until.result | 11 -------- mysql-test/suite/rpl/t/disabled.def | 1 - mysql-test/suite/rpl/t/rpl_stm_until.test | 30 --------------------- 3 files changed, 42 deletions(-) diff --git a/mysql-test/suite/rpl/r/rpl_stm_until.result b/mysql-test/suite/rpl/r/rpl_stm_until.result index a71746d7fba..00d54ae9f9d 100644 --- a/mysql-test/suite/rpl/r/rpl_stm_until.result +++ b/mysql-test/suite/rpl/r/rpl_stm_until.result @@ -93,15 +93,4 @@ one 1 drop table t1; start slave; -include/rpl_reset.inc -flush logs; -stop slave; -reset slave; -start slave until master_log_file='master-bin.000001', master_log_pos=294 /* to stop right before DROP */; -include/wait_for_slave_sql_to_stop.inc -show tables /* t1 must exist */; -Tables_in_test -t1 -drop table t1; -stop slave; include/rpl_end.inc diff --git a/mysql-test/suite/rpl/t/disabled.def b/mysql-test/suite/rpl/t/disabled.def index d33f85091ff..86ecbb09594 100644 --- a/mysql-test/suite/rpl/t/disabled.def +++ b/mysql-test/suite/rpl/t/disabled.def @@ -12,5 +12,4 @@ rpl_row_create_table : Bug#11759274 Feb 27 2010 andrei failed different way than earlier with bug#45576 rpl_get_master_version_and_clock : Bug#11766137 Jan 05 2011 joro Valgrind warnings rpl_get_master_version_and_clock -rpl_stm_until : BUG#59543 Jan 26 2011 alfranio Replication test from eits suite rpl_row_until times out rpl_row_until @macosx : BUG#15965353 RPL.RPL_ROW_UNTIL FAILS ON PB2 , PLATFORM= MACOSX10.6 X86_64 MAX diff --git a/mysql-test/suite/rpl/t/rpl_stm_until.test b/mysql-test/suite/rpl/t/rpl_stm_until.test index 7f041ae5123..7a534be7335 100644 --- a/mysql-test/suite/rpl/t/rpl_stm_until.test +++ b/mysql-test/suite/rpl/t/rpl_stm_until.test @@ -183,36 +183,6 @@ connection slave; start slave; sync_with_master; - # Bug #47142 "slave start until" stops 1 event too late in 4.1 to 5.0 replication -# -# testing fixes that refine the start position of prior-5.0 master's event -# and by that provide correct execution of -# START SLAVE UNTIL ... master_log_pos= x; -# Keep the test at the end of the file because it manipulates with binlog files -# to substitute the genuine one with a prepared on 4.1 server. -# - ---source include/rpl_reset.inc - -connection master; -flush logs; -let $MYSQLD_DATADIR= `select @@datadir`; ---remove_file $MYSQLD_DATADIR/master-bin.000001 ---copy_file $MYSQL_TEST_DIR/std_data/bug47142_master-bin.000001 $MYSQLD_DATADIR/master-bin.000001 - -connection slave; -stop slave; -reset slave; -start slave until master_log_file='master-bin.000001', master_log_pos=294 /* to stop right before DROP */; ---source include/wait_for_slave_sql_to_stop.inc - -show tables /* t1 must exist */; - -# clean-up of Bug #47142 testing - -drop table t1; # drop on slave only, master does not have t1. -stop slave; - # End of tests --let $rpl_only_running_threads= 1 --source include/rpl_end.inc From 795b8acc2a50e9d47945841ce2c3f08d4ad9db03 Mon Sep 17 00:00:00 2001 From: Harin Vadodaria Date: Fri, 15 Feb 2013 12:35:54 +0530 Subject: [PATCH 064/172] Bug#16218104: MYSQL YASSL - LUCKY THIRTEEN: BREAKING THE TLS AND DTLS RECORD PROTOCOLS Description: In yassl, decryption phase in TLS protocol depends on type of padding. This patch removes this dependancy and makes error generation/decryption process independent of padding type. --- extra/yassl/include/yassl_error.hpp | 3 +- extra/yassl/include/yassl_types.hpp | 6 +- extra/yassl/src/handshake.cpp | 35 +++++ extra/yassl/src/yassl_error.cpp | 4 + extra/yassl/src/yassl_imp.cpp | 192 ++++++++++++++++++++++++---- 5 files changed, 215 insertions(+), 25 deletions(-) diff --git a/extra/yassl/include/yassl_error.hpp b/extra/yassl/include/yassl_error.hpp index 8efc7f72e87..5ce70c3ca70 100644 --- a/extra/yassl/include/yassl_error.hpp +++ b/extra/yassl/include/yassl_error.hpp @@ -53,7 +53,8 @@ enum YasslError { badVersion_error = 117, compress_error = 118, decompress_error = 119, - pms_version_error = 120 + pms_version_error = 120, + sanityCipher_error = 121 // !!!! add error message to .cpp !!!! diff --git a/extra/yassl/include/yassl_types.hpp b/extra/yassl/include/yassl_types.hpp index a9e22833eb1..14b33eb9129 100644 --- a/extra/yassl/include/yassl_types.hpp +++ b/extra/yassl/include/yassl_types.hpp @@ -220,7 +220,11 @@ const int DEFAULT_TIMEOUT = 500; // Default Session timeout in seconds const int MAX_RECORD_SIZE = 16384; // 2^14, max size by standard const int COMPRESS_EXTRA = 1024; // extra compression possible addition const int SESSION_FLUSH_COUNT = 256; // when to flush session cache - +const int MAX_PAD_SIZE = 256; // max TLS padding size +const int COMPRESS_CONSTANT = 13; // compression calculation constant +const int COMPRESS_UPPER = 55; // compression calculation numerator +const int COMPRESS_LOWER = 64; // compression calculation denominator +const int COMPRESS_DUMMY_SIZE = 64; // compression dummy round size typedef uint8 Cipher; // first byte is always 0x00 for SSLv3 & TLS diff --git a/extra/yassl/src/handshake.cpp b/extra/yassl/src/handshake.cpp index c7dbaf86071..4b1ed3d7fef 100644 --- a/extra/yassl/src/handshake.cpp +++ b/extra/yassl/src/handshake.cpp @@ -221,12 +221,45 @@ void buildSHA(SSL& ssl, Finished& fin, const opaque* sender) } +// sanity checks on encrypted message size +static int sanity_check_message(SSL& ssl, uint msgSz) +{ + uint minSz = 0; + + if (ssl.getSecurity().get_parms().cipher_type_ == block) { + uint blockSz = ssl.getCrypto().get_cipher().get_blockSize(); + if (msgSz % blockSz) + return -1; + + minSz = ssl.getSecurity().get_parms().hash_size_ + 1; // pad byte too + if (blockSz > minSz) + minSz = blockSz; + + if (ssl.isTLSv1_1()) + minSz += blockSz; // explicit IV + } + else { // stream + minSz = ssl.getSecurity().get_parms().hash_size_; + } + + if (msgSz < minSz) + return -1; + + return 0; +} + + // decrypt input message in place, store size in case needed later void decrypt_message(SSL& ssl, input_buffer& input, uint sz) { input_buffer plain(sz); opaque* cipher = input.get_buffer() + input.get_current(); + if (sanity_check_message(ssl, sz) != 0) { + ssl.SetError(sanityCipher_error); + return; + } + ssl.useCrypto().use_cipher().decrypt(plain.get_buffer(), cipher, sz); memcpy(cipher, plain.get_buffer(), sz); ssl.useSecurity().use_parms().encrypt_size_ = sz; @@ -774,6 +807,8 @@ int DoProcessReply(SSL& ssl) return 0; } decrypt_message(ssl, buffer, hdr.length_); + if (ssl.GetError()) + return 0; } mySTL::auto_ptr msg(mf.CreateObject(hdr.type_)); diff --git a/extra/yassl/src/yassl_error.cpp b/extra/yassl/src/yassl_error.cpp index b9fccf782f0..2cefd27d428 100644 --- a/extra/yassl/src/yassl_error.cpp +++ b/extra/yassl/src/yassl_error.cpp @@ -144,6 +144,10 @@ void SetErrorString(YasslError error, char* buffer) strncpy(buffer, "bad PreMasterSecret version error", max); break; + case sanityCipher_error : + strncpy(buffer, "sanity check on cipher text size error", max); + break; + // openssl errors case SSL_ERROR_WANT_READ : strncpy(buffer, "the read operation would block", max); diff --git a/extra/yassl/src/yassl_imp.cpp b/extra/yassl/src/yassl_imp.cpp index 66a173bece8..692190d3a75 100644 --- a/extra/yassl/src/yassl_imp.cpp +++ b/extra/yassl/src/yassl_imp.cpp @@ -972,30 +972,193 @@ output_buffer& operator<<(output_buffer& output, const Data& data) } +// check all bytes for equality +static int constant_compare(const byte* a, const byte* b, int len) +{ + int good = 0; + int bad = 0; + + for (int i = 0; i < len; i++) { + if (a[i] == b[i]) + good++; + else + bad++; + } + + if (good == len) + return 0; + else + return 0 - bad; // failure +} + + +// check bytes for pad value +static int pad_check(const byte* input, byte pad, int len) +{ + int good = 0; + int bad = 0; + + for (int i = 0; i < len; i++) { + if (input[i] == pad) + good++; + else + bad++; + } + + if (good == len) + return 0; + else + return 0 - bad; // failure +} + + +// get number of compression rounds +static inline int get_rounds(int pLen, int padLen, int t) +{ + int roundL1 = 1; // round ups + int roundL2 = 1; + + int L1 = COMPRESS_CONSTANT + pLen - t; + int L2 = COMPRESS_CONSTANT + pLen - padLen - 1 - t; + + L1 -= COMPRESS_UPPER; + L2 -= COMPRESS_UPPER; + + if ( (L1 % COMPRESS_LOWER) == 0) + roundL1 = 0; + if ( (L2 % COMPRESS_LOWER) == 0) + roundL2 = 0; + + L1 /= COMPRESS_LOWER; + L2 /= COMPRESS_LOWER; + + L1 += roundL1; + L2 += roundL2; + + return L1 - L2; +} + + +// do compression rounds on dummy data +static inline void compress_rounds(SSL& ssl, int rounds, const byte* dummy) +{ + if (rounds) { + Digest* digest = NULL; + + MACAlgorithm ma = ssl.getSecurity().get_parms().mac_algorithm_; + if (ma == sha) + digest = NEW_YS SHA; + else if (ma == md5) + digest = NEW_YS MD5; + else if (ma == rmd) + digest = NEW_YS RMD; + else + return; + + for (int i = 0; i < rounds; i++) + digest->update(dummy, COMPRESS_LOWER); + + ysDelete(digest); + } +} + + +// timing resistant pad verification +static int timing_verify(SSL& ssl, const byte* input, int padLen, int t, + int pLen) +{ + byte verify[SHA_LEN]; + byte dummy[MAX_PAD_SIZE]; + + memset(dummy, 1, sizeof(dummy)); + + if ( (t + padLen + 1) > pLen) { + pad_check(dummy, (byte)padLen, MAX_PAD_SIZE); + if (ssl.isTLS()) + TLS_hmac(ssl, verify, input, pLen - t, application_data, 1); + else + hmac(ssl, verify, input, pLen - t, application_data, 1); + constant_compare(verify, input + pLen - t, t); + + return -1; + } + + if (pad_check(input + pLen - (padLen + 1), (byte)padLen, padLen + 1) != 0) { + pad_check(dummy, (byte)padLen, MAX_PAD_SIZE - padLen - 1); + if (ssl.isTLS()) + TLS_hmac(ssl, verify, input, pLen - t, application_data, 1); + else + hmac(ssl, verify, input, pLen - t, application_data, 1); + constant_compare(verify, input + pLen - t, t); + + return -1; + } + + pad_check(dummy, (byte)padLen, MAX_PAD_SIZE - padLen - 1); + if (ssl.isTLS()) + TLS_hmac(ssl, verify, input, pLen - padLen - 1 - t, application_data,1); + else + hmac(ssl, verify, input, pLen - padLen - 1 - t, application_data, 1); + + compress_rounds(ssl, get_rounds(pLen, padLen, t), dummy); + + if (constant_compare(verify, input + (pLen - padLen - 1 - t), t) != 0) + return -1; + + return 0; +} + + // Process handler for Data void Data::Process(input_buffer& input, SSL& ssl) { int msgSz = ssl.getSecurity().get_parms().encrypt_size_; int pad = 0, padSz = 0; int ivExtra = 0; + int digestSz = ssl.getCrypto().get_digest().get_digestSize(); + const byte* rawData = input.get_buffer() + input.get_current(); + opaque verify[SHA_LEN]; if (ssl.getSecurity().get_parms().cipher_type_ == block) { if (ssl.isTLSv1_1()) // IV ivExtra = ssl.getCrypto().get_cipher().get_blockSize(); pad = *(input.get_buffer() + input.get_current() + msgSz -ivExtra - 1); padSz = 1; + + if (ssl.isTLS()) { + if (timing_verify(ssl, rawData, pad,digestSz, msgSz-ivExtra) != 0) { + ssl.SetError(verify_error); + return; + } + } + else { // SSLv3, some don't do this padding right + int sz3 = msgSz - digestSz - pad - 1; + hmac(ssl, verify, rawData, sz3, application_data, true); + if (constant_compare(verify, rawData + sz3, digestSz) != 0) { + ssl.SetError(verify_error); + return; + } + } } - int digestSz = ssl.getCrypto().get_digest().get_digestSize(); + else { // stream + int streamSz = msgSz - digestSz; + if (ssl.isTLS()) + TLS_hmac(ssl, verify, rawData, streamSz, application_data, true); + else + hmac(ssl, verify, rawData, streamSz, application_data, true); + if (constant_compare(verify, rawData + streamSz, digestSz) != 0) { + ssl.SetError(verify_error); + return; + } + } + int dataSz = msgSz - ivExtra - digestSz - pad - padSz; - opaque verify[SHA_LEN]; if (dataSz < 0) { ssl.SetError(bad_input); return; } - const byte* rawData = input.get_buffer() + input.get_current(); - // read data if (dataSz) { // could be compressed if (ssl.CompressionOn()) { @@ -1013,27 +1176,10 @@ void Data::Process(input_buffer& input, SSL& ssl) input.read(data->get_buffer(), dataSz); data->add_size(dataSz); } - - if (ssl.isTLS()) - TLS_hmac(ssl, verify, rawData, dataSz, application_data, true); - else - hmac(ssl, verify, rawData, dataSz, application_data, true); } - // read mac and skip fill - opaque mac[SHA_LEN]; - input.read(mac, digestSz); - input.set_current(input.get_current() + pad + padSz); - - // verify - if (dataSz) { - if (memcmp(mac, verify, digestSz)) { - ssl.SetError(verify_error); - return; - } - } - else - ssl.get_SEQIncrement(true); // even though no data, increment verify + // advance past mac and fill + input.set_current(input.get_current() + digestSz + pad + padSz); } From 776b5697958381d751bc8c45ab7413cece2ed7f7 Mon Sep 17 00:00:00 2001 From: Alexander Nozdrin Date: Fri, 15 Feb 2013 16:01:37 +0400 Subject: [PATCH 065/172] Bug#16056537: MYSQLD CRASHES IN ITEM_FUNC_GET_USER_VAR::FIX_LENGTH_AND_DEC() The technical problem was that THD::user_var_events_alloc was reset to NULL from a valid value when a stored program is executed during the PREPARE statement. The user visible problem was that the server crashed if user issued a PREPARE statement using some combination of stored functions and user variables. The fix is to restore THD::user_var_events_alloc to the original value. This is a minimal fix for 5.5. More proper patch has been already implemented for 5.6+. It avoids evaluation of stored functions for the PREPARE phase. From the user point of view, this bug is a regression, introduced by the patch for WL2649 (Number-to-string conversions), revid: bar@mysql.com-20100211041725-ijbox021olab82nv However, the code resetting THD::user_var_events_alloc exists even in 5.1. The WL just changed the way arguments are converted to strings and the bug became visible. --- sql/sp_head.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sql/sp_head.cc b/sql/sp_head.cc index f20c205886d..552a44c7a96 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -1427,6 +1427,7 @@ sp_head::execute(THD *thd, bool merge_da_on_success) Will write this SP statement into binlog separately. TODO: consider changing the condition to "not inside event union". */ + MEM_ROOT *user_var_events_alloc_saved= thd->user_var_events_alloc; if (thd->locked_tables_mode <= LTM_LOCK_TABLES) thd->user_var_events_alloc= thd->mem_root; @@ -1442,7 +1443,7 @@ sp_head::execute(THD *thd, bool merge_da_on_success) if (thd->locked_tables_mode <= LTM_LOCK_TABLES) { reset_dynamic(&thd->user_var_events); - thd->user_var_events_alloc= NULL;//DEBUG + thd->user_var_events_alloc= user_var_events_alloc_saved; } /* we should cleanup free_list and memroot, used by instruction */ From 7e8c887786dc76c0057acb5a73ff4355a4ea87b1 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Fri, 15 Feb 2013 21:57:35 +0000 Subject: [PATCH 066/172] BUG#13545447: RPL_ROTATE_LOGS FAILS DUE TO CONCURRENCY ISSUES IN REP. CODE In method mysql_binlog_send, right after detecting a EOF in the read event loop, and before deciding if we should change to a new binlog file there is a execution window where new events can be written to the binlog and a rotation can happen. When reaching the test, the function will then change to a new binlog file ignoring all the events written in this window. This will result in events not being replicated. Only when the binlog is detected as deactivated in the event loop of the dump thread, can we really know that no more events remain. For this reason, this test is now made under the log lock in the beginning of the event loop when reading the events. --- sql/log_event.cc | 8 +++++++- sql/log_event.h | 30 ++++++++++++++++++++++++++++-- sql/sql_repl.cc | 21 +++++++++++++++++---- 3 files changed, 52 insertions(+), 7 deletions(-) diff --git a/sql/log_event.cc b/sql/log_event.cc index 8abd95bba0a..7d2a80fdaf9 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -1012,7 +1012,9 @@ bool Log_event::write_header(IO_CACHE* file, ulong event_data_length) */ int Log_event::read_log_event(IO_CACHE* file, String* packet, - pthread_mutex_t* log_lock) + pthread_mutex_t* log_lock, + const char *log_file_name_arg, + bool* is_binlog_active) { ulong data_len; int result=0; @@ -1021,6 +1023,10 @@ int Log_event::read_log_event(IO_CACHE* file, String* packet, if (log_lock) pthread_mutex_lock(log_lock); + + if (log_file_name_arg) + *is_binlog_active= mysql_bin_log.is_active(log_file_name_arg); + if (my_b_read(file, (uchar*) buf, sizeof(buf))) { /* diff --git a/sql/log_event.h b/sql/log_event.h index 4c8580eb2fd..4fabb83aac7 100644 --- a/sql/log_event.h +++ b/sql/log_event.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -945,8 +945,34 @@ public: pthread_mutex_t* log_lock, const Format_description_log_event *description_event); + + /** + Reads an event from a binlog or relay log. Used by the dump thread + this method reads the event into a raw buffer without parsing it. + + @Note If mutex is 0, the read will proceed without mutex. + + @Note If a log name is given than the method will check if the + given binlog is still active. + + @param[in] file log file to be read + @param[out] packet packet to hold the event + @param[in] lock the lock to be used upon read + @param[in] log_file_name_arg the log's file name + @param[out] is_binlog_active is the current log still active + + @retval 0 success + @retval LOG_READ_EOF end of file, nothing was read + @retval LOG_READ_BOGUS malformed event + @retval LOG_READ_IO io error while reading + @retval LOG_READ_MEM packet memory allocation failed + @retval LOG_READ_TRUNC only a partial event could be read + @retval LOG_READ_TOO_LARGE event too large + */ static int read_log_event(IO_CACHE* file, String* packet, - pthread_mutex_t* log_lock); + pthread_mutex_t* log_lock, + const char *log_file_name_arg= NULL, + bool* is_binlog_active= false); /* init_show_field_list() prepares the column names and types for the output of SHOW BINLOG EVENTS; it is used only by SHOW BINLOG diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index c15382c669e..6894eaa48b5 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -548,7 +548,10 @@ impossible position"; while (!net->error && net->vio != 0 && !thd->killed) { my_off_t prev_pos= pos; - while (!(error = Log_event::read_log_event(&log, packet, log_lock))) + bool is_active_binlog= false; + while (!(error= Log_event::read_log_event(&log, packet, log_lock, + log_file_name, + &is_active_binlog))) { prev_pos= my_b_tell(&log); #ifndef DBUG_OFF @@ -624,6 +627,13 @@ impossible position"; error=LOG_READ_EOF; } + DBUG_EXECUTE_IF("wait_after_binlog_EOF", + { + const char act[]= "now wait_for signal.rotate_finished"; + DBUG_ASSERT(!debug_sync_set_action(current_thd, + STRING_WITH_LEN(act))); + };); + /* TODO: now that we are logging the offset, check to make sure the recorded offset and the actual match. @@ -634,8 +644,11 @@ impossible position"; if (test_for_non_eof_log_read_errors(error, &errmsg)) goto err; - if (!(flags & BINLOG_DUMP_NON_BLOCK) && - mysql_bin_log.is_active(log_file_name)) + /* + We should only move to the next binlog when the last read event + came from a already deactivated binlog. + */ + if (!(flags & BINLOG_DUMP_NON_BLOCK) && is_active_binlog) { /* Block until there is more data in the log From 5fcf40a2aa28850ec84ed26f44aa8258c9f7bf9b Mon Sep 17 00:00:00 2001 From: Shivji Kumar Jha Date: Sun, 17 Feb 2013 01:42:28 +0530 Subject: [PATCH 067/172] BUG#15965353- RPL.RPL_ROW_UNTIL FAILS ON PB2, PLATFORM= MACOSX10.6 X86_64 MAX Problem: The test was failing on pb2's mac machine because it was not cleaned up properly. The test checks if the command 'start slave until' throws a proper error when issued with a wrong number/type of parameters. After this,the replication stream was stopped using the include file 'rpl_end.inc'. The errors thrown earlier left the slave in an inconsistent state to be closed by the include file which was caught by the mac machine. Fix: Started slave by invoking start_slave.inc to have a working slave before calling rpl_reset.inc Problem: The test file was not in a good shape. It tested start slave until relay log file/pos combination wrongly. A couple of commands were executed at master and replicated at slave. Next, the coordinates in terms of relay log file and pos were noted down followed by reset slave and start slave until saved relay log file/pos. Reset slave deletes all relay log files and makes the slave forget its replication position. So, using the saved coordiantes after reset slave is wrong. Fix: Split the test in two parts: a) Test for start slave until master log file/pos and checking for correct errors in the failure scenarios. b) Test for start slave until relay log file/pos. Problem: The variables auto_increment_increment and auto_increment_offset were set in the the include file rpl_init.inc. This was only configured for some connections that are rarely used by test cases, so likely that it will cause confusion. If replication tests want to setup these variables they should do so explicitly. Fix: a) Removed code to set the variables auto_increment_increment and auto_increment_offset in the include file. b) Updated tests files using the same. --- mysql-test/include/rpl_init.inc | 3 - .../rpl/r/rpl_circular_for_4_hosts.result | 12 +++ mysql-test/suite/rpl/r/rpl_row_until.result | 22 ++++-- mysql-test/suite/rpl/t/disabled.def | 1 - .../suite/rpl/t/rpl_circular_for_4_hosts.test | 12 +++ mysql-test/suite/rpl/t/rpl_row_until.test | 75 +++++++++++++------ 6 files changed, 90 insertions(+), 35 deletions(-) diff --git a/mysql-test/include/rpl_init.inc b/mysql-test/include/rpl_init.inc index 3cf78dc2979..8325b2937b6 100644 --- a/mysql-test/include/rpl_init.inc +++ b/mysql-test/include/rpl_init.inc @@ -7,7 +7,6 @@ # well as extra connections server_1_1, server_2_1, ..., # server_N_1. server_I and server_I_1 are connections to the same # server. -# - Sets up @@auto_increment_increment and @@auto_increment_increment. # - Verifies that @@server_id of all servers are different. # - Calls RESET MASTER, RESET SLAVE, USE test, CHANGE MASTER, START SLAVE. # - Sets the connection to server_1 before exiting. @@ -179,8 +178,6 @@ while ($_rpl_server) RESET MASTER; RESET SLAVE; } - eval SET auto_increment_increment= $rpl_server_count; - eval SET auto_increment_offset= $_rpl_server; --dec $_rpl_server } diff --git a/mysql-test/suite/rpl/r/rpl_circular_for_4_hosts.result b/mysql-test/suite/rpl/r/rpl_circular_for_4_hosts.result index 412021d6446..66974762ebc 100644 --- a/mysql-test/suite/rpl/r/rpl_circular_for_4_hosts.result +++ b/mysql-test/suite/rpl/r/rpl_circular_for_4_hosts.result @@ -1,6 +1,18 @@ *** Set up circular replication on four servers *** include/rpl_init.inc [topology=1->2->3->4->1] +[connection server_4] +SET auto_increment_increment= 4; +SET auto_increment_offset= 4; +[connection server_3] +SET auto_increment_increment= 4; +SET auto_increment_offset= 3; +[connection server_2] +SET auto_increment_increment= 4; +SET auto_increment_offset= 2; +[connection server_1] +SET auto_increment_increment= 4; +SET auto_increment_offset= 1; *** Preparing data *** CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, PRIMARY KEY(a)) ENGINE=MyISAM; CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, PRIMARY KEY(a)) ENGINE=InnoDB; diff --git a/mysql-test/suite/rpl/r/rpl_row_until.result b/mysql-test/suite/rpl/r/rpl_row_until.result index be8f17c6f01..5ab39a00946 100644 --- a/mysql-test/suite/rpl/r/rpl_row_until.result +++ b/mysql-test/suite/rpl/r/rpl_row_until.result @@ -27,12 +27,6 @@ n 3 4 include/check_slave_param.inc [Exec_Master_Log_Pos] -include/wait_for_slave_sql_to_stop.inc -SELECT * FROM t2; -n -1 -2 -include/check_slave_param.inc [Exec_Master_Log_Pos] START SLAVE; include/wait_for_slave_to_start.inc include/stop_slave.inc @@ -54,6 +48,18 @@ START SLAVE; START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=MASTER_LOG_POS; Warnings: Note 1254 Slave is already running -include/stop_slave.inc -RESET SLAVE; +include/start_slave.inc +Warnings: +Note 1254 Slave is already running +include/rpl_reset.inc +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1); +include/stop_slave_sql.inc +INSERT INTO t1 VALUES (2); +INSERT INTO t1 VALUES (3); +include/sync_slave_io_with_master.inc +include/wait_for_slave_sql_to_stop.inc +include/assert.inc [table t1 should have two rows.] +include/start_slave.inc +DROP TABLE t1; include/rpl_end.inc diff --git a/mysql-test/suite/rpl/t/disabled.def b/mysql-test/suite/rpl/t/disabled.def index 86ecbb09594..d3339c1bfe8 100644 --- a/mysql-test/suite/rpl/t/disabled.def +++ b/mysql-test/suite/rpl/t/disabled.def @@ -12,4 +12,3 @@ rpl_row_create_table : Bug#11759274 Feb 27 2010 andrei failed different way than earlier with bug#45576 rpl_get_master_version_and_clock : Bug#11766137 Jan 05 2011 joro Valgrind warnings rpl_get_master_version_and_clock -rpl_row_until @macosx : BUG#15965353 RPL.RPL_ROW_UNTIL FAILS ON PB2 , PLATFORM= MACOSX10.6 X86_64 MAX diff --git a/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test b/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test index 1380b3d97cf..f1d42089869 100644 --- a/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test +++ b/mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test @@ -20,6 +20,18 @@ --source include/rpl_init.inc --echo +#set auto inc variables at each server +--let $_rpl_server= $rpl_server_count +while ($_rpl_server) +{ + --let $rpl_connection_name= server_$_rpl_server + --source include/rpl_connection.inc + eval SET auto_increment_increment= $rpl_server_count; + eval SET auto_increment_offset= $_rpl_server; + + --dec $_rpl_server +} + # Preparing data. --echo *** Preparing data *** --connection server_1 diff --git a/mysql-test/suite/rpl/t/rpl_row_until.test b/mysql-test/suite/rpl/t/rpl_row_until.test index eaa99c29694..1e5bc341b1a 100644 --- a/mysql-test/suite/rpl/t/rpl_row_until.test +++ b/mysql-test/suite/rpl/t/rpl_row_until.test @@ -2,7 +2,13 @@ -- source include/have_binlog_format_row.inc -- source include/master-slave.inc -# Note: The test is dependent on binlog positions +############################################################################## +# The test is dependent on binlog positions. The test is divided into two +# sections. The first section checks START SLAVE UNTIL MASTER_LOG_FILE = +# 'log_name', MASTER_LOG_POS = log_pos followed by a couple of failure +# scenarios. The second section checks START SLAVE UNTIL RELAY_LOG_FILE = +# 'log_name', RELAY_LOG_POS = log_pos. +############################################################################## # Create some events on master connection master; @@ -22,14 +28,8 @@ let $master_pos_create_t2= query_get_value(SHOW BINLOG EVENTS, Pos, 8); INSERT INTO t2 VALUES (1),(2); save_master_pos; # Save master log position for query INSERT INTO t2 VALUES (1),(2); -let $master_pos_insert1_t2= query_get_value(SHOW BINLOG EVENTS, End_log_pos, 12); -sync_slave_with_master; +let $master_pos_insert1_t2= query_get_value(SHOW MASTER STATUS, Position, 1); -# Save relay log position for query INSERT INTO t2 VALUES (1),(2); -let $relay_log_file= query_get_value(show slave status, Relay_Log_File,1); -let $relay_pos_insert1_t2= query_get_value(show slave status, Relay_Log_Pos, 1); - -connection master; INSERT INTO t2 VALUES (3),(4); DROP TABLE t2; # Save master log position for query INSERT INTO t2 VALUES (1),(2); @@ -68,17 +68,6 @@ SELECT * FROM t1; --let $slave_param_value= $master_pos_drop_t1 --source include/check_slave_param.inc -# Try replicate all up to and not including the second insert to t2; ---disable_query_log -eval START SLAVE UNTIL RELAY_LOG_FILE='$relay_log_file', RELAY_LOG_POS=$relay_pos_insert1_t2; ---enable_query_log ---source include/wait_for_slave_sql_to_stop.inc -SELECT * FROM t2; - ---let $slave_param= Exec_Master_Log_Pos ---let $slave_param_value= $master_pos_insert1_t2 ---source include/check_slave_param.inc - # clean up START SLAVE; --source include/wait_for_slave_to_start.inc @@ -119,9 +108,49 @@ START SLAVE; --replace_result 740 MASTER_LOG_POS START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=740; ---source include/stop_slave.inc -# Clear slave IO error. -RESET SLAVE; +--source include/start_slave.inc ---let $rpl_only_running_threads= 1 +############################################################################## +# The second section - checks START SLAVE UNTIL RELAY_LOG_FILE =# 'log_name', +# RELAY_LOG_POS = log_pos. This section of the test does the following: +# 1) At master, create a table and inserts a value. Let slave replicate this. +# 2) Stop slave sql thread. +# 3) Insert some more values at master. Note that io thread copies this insert +# 4) Use start slave until to start the sql thread and check if it +# stops at the correct position. +############################################################################## + +--source include/rpl_reset.inc + +--connection master +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1); + +--sync_slave_with_master +--source include/stop_slave_sql.inc + +--connection master +INSERT INTO t1 VALUES (2); +--let $master_log_pos= query_get_value(SHOW MASTER STATUS, Position, 1) +INSERT INTO t1 VALUES (3); + +--source include/sync_slave_io_with_master.inc + +--let $relay_log_file= query_get_value(SHOW SLAVE STATUS, Relay_Log_File,1) +--source include/get_relay_log_pos.inc + +--disable_query_log +--eval start slave until relay_log_file='$relay_log_file', relay_log_pos=$relay_log_pos +--enable_query_log +--source include/wait_for_slave_sql_to_stop.inc + +--let $assert_cond= COUNT(*) = 2 FROM t1 +--let $assert_text= table t1 should have two rows. +--source include/assert.inc + +#cleanup +--source include/start_slave.inc +--connection master +DROP TABLE t1; +--sync_slave_with_master --source include/rpl_end.inc From 66eeaad6b8406105c6bef41f0b42c719587c1ffd Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 18 Feb 2013 11:13:48 +0530 Subject: [PATCH 068/172] From f144e0fead306c31a4bf3767dad6efd4b404afbd Mon Sep 17 00:00:00 2001 From: Tor Didriksen Date: Mon, 18 Feb 2013 11:12:24 +0100 Subject: [PATCH 069/172] =?UTF-8?q?BUG#13545447:=20RPL=5FROTATE=5FLOGS=20F?= =?UTF-8?q?AILS=20DUE=20TO=20CONCURRENCY=20ISSUES=20IN=20REP.=20CODE=20Pos?= =?UTF-8?q?t-push=20fix,=20broken=20build:=20sql/rpl=5Fmaster.cc:1049:70:?= =?UTF-8?q?=20error:=20converting=20=E2=80=98false=E2=80=99=20to=20pointer?= =?UTF-8?q?=20type=20=E2=80=98bool*=E2=80=99=20[-Werror=3Dconversion-null]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/log_event.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/log_event.h b/sql/log_event.h index 72a269304ca..84564877974 100644 --- a/sql/log_event.h +++ b/sql/log_event.h @@ -1024,7 +1024,7 @@ public: static int read_log_event(IO_CACHE* file, String* packet, mysql_mutex_t* log_lock, const char *log_file_name_arg= NULL, - bool* is_binlog_active= false); + bool* is_binlog_active= NULL); /* init_show_field_list() prepares the column names and types for the output of SHOW BINLOG EVENTS; it is used only by SHOW BINLOG From 4061d719ec81d366ec054990c0e1850e830046fc Mon Sep 17 00:00:00 2001 From: Anirudh Mangipudi Date: Mon, 18 Feb 2013 19:13:06 +0530 Subject: [PATCH 070/172] Bug #12546953 "SHOW VARIABLES LIKE 'DATADIR';" RETURN EMPTY. Problem: =========================================================== If mysqld daemon is started without a --datadir option option, and we issue the SHOW VARIABLES LIKE 'DATADIR';SQL command at the client it returns an empty path. This is because mysql_real_data_home_ptr is being reset to NULL by Sys_var_charptr constructor call when the datadir is not given either through configuration file (no-defaults) or through mysqld parameters. Solution: =========================================================== mysql_real_data_home is an array which stores the path of the datadir and mysql_real_data_home_ptr is the pointer to it. The pointer is being set to NULL at the Sys_datadir, which is of type Sys_var_charptr, constructor call. This is because at Sys_datadir call the def_val parameter was being passed with DEFAULT(0) which is now replaced with DEFAULT(mysql_real_data_home). The patch has been tested manually as it is not possible to start mtr without a default config file. --- sql/sys_vars.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 9e79cdcb6f3..2430a54ffd7 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -659,7 +659,7 @@ static Sys_var_ulong Sys_connect_timeout( static Sys_var_charptr Sys_datadir( "datadir", "Path to the database root directory", READ_ONLY GLOBAL_VAR(mysql_real_data_home_ptr), - CMD_LINE(REQUIRED_ARG, 'h'), IN_FS_CHARSET, DEFAULT(0)); + CMD_LINE(REQUIRED_ARG, 'h'), IN_FS_CHARSET, DEFAULT(mysql_real_data_home)); #ifndef DBUG_OFF static Sys_var_dbug Sys_dbug( From e8e63d463fb55c8ad8ae6772aeb5432653d56ca3 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Mon, 18 Feb 2013 17:02:26 +0000 Subject: [PATCH 071/172] BUG#13545447: RPL_ROTATE_LOGS FAILS DUE TO CONCURRENCY ISSUES IN REP. CODE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Post-push fix, broken build: sql/rpl_master.cc:1049:70: error: converting ‘false’ to pointer type ‘bool*’ [-Werror=conversion-null] --- sql/log_event.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/log_event.h b/sql/log_event.h index 4fabb83aac7..63b31454011 100644 --- a/sql/log_event.h +++ b/sql/log_event.h @@ -972,7 +972,7 @@ public: static int read_log_event(IO_CACHE* file, String* packet, pthread_mutex_t* log_lock, const char *log_file_name_arg= NULL, - bool* is_binlog_active= false); + bool* is_binlog_active= NULL); /* init_show_field_list() prepares the column names and types for the output of SHOW BINLOG EVENTS; it is used only by SHOW BINLOG From 85c299dd985e22d74a52b071f0577e39b338bc79 Mon Sep 17 00:00:00 2001 From: Shivji Kumar Jha Date: Tue, 19 Feb 2013 01:58:57 +0530 Subject: [PATCH 072/172] BUG#15965353- RPL.RPL_ROW_UNTIL FAILS ON PB2, PLATFORM= MACOSX10.6 X86_64 MAX post push fix --- mysql-test/suite/rpl/r/rpl_row_until.result | 2 ++ mysql-test/suite/rpl/t/rpl_row_until.test | 2 ++ 2 files changed, 4 insertions(+) diff --git a/mysql-test/suite/rpl/r/rpl_row_until.result b/mysql-test/suite/rpl/r/rpl_row_until.result index 26f858c3d56..a09d44227a3 100644 --- a/mysql-test/suite/rpl/r/rpl_row_until.result +++ b/mysql-test/suite/rpl/r/rpl_row_until.result @@ -45,6 +45,8 @@ ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UN START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', MASTER_LOG_POS=MASTER_LOG_POS; ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=MASTER_LOG_POS; +include/stop_slave.inc +RESET SLAVE; include/start_slave.inc include/rpl_reset.inc CREATE TABLE t1 (a INT); diff --git a/mysql-test/suite/rpl/t/rpl_row_until.test b/mysql-test/suite/rpl/t/rpl_row_until.test index 22571000dd4..6b8f6183cc7 100644 --- a/mysql-test/suite/rpl/t/rpl_row_until.test +++ b/mysql-test/suite/rpl/t/rpl_row_until.test @@ -108,6 +108,8 @@ START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', MASTER_LOG_POS=561; --replace_result 740 MASTER_LOG_POS START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=740; +--source include/stop_slave.inc +RESET SLAVE; --source include/start_slave.inc ############################################################################## From 8ea6ed92eba894ae297c11f345614cfd69225603 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 19 Feb 2013 10:55:55 +0530 Subject: [PATCH 073/172] From c40136542310982fd365e53f927b5a929f564b3e Mon Sep 17 00:00:00 2001 From: Harin Vadodaria Date: Tue, 19 Feb 2013 12:17:31 +0530 Subject: [PATCH 074/172] Bug#16235681: TURN OFF DEFAULT COMPRESSION WHILE USING OPENSSL Description: Specify preference to disable compression while using OpenSSL library. OpenSSL uses zlib compression by default which may lead to some problems. --- vio/viossl.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vio/viossl.c b/vio/viossl.c index 0651fd8b7a3..143d108d3d7 100644 --- a/vio/viossl.c +++ b/vio/viossl.c @@ -198,6 +198,9 @@ static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, long timeout, SSL_clear(ssl); SSL_SESSION_set_timeout(SSL_get_session(ssl), timeout); SSL_set_fd(ssl, vio->sd); +#ifndef HAVE_YASSL + SSL_set_options(ssl, SSL_OP_NO_COMPRESSION); +#endif if (connect_accept_func(ssl) < 1) { From 4d494b17264eb93068b02b239c2f76b51920e0c4 Mon Sep 17 00:00:00 2001 From: Sujatha Sivakumar Date: Tue, 19 Feb 2013 14:31:11 +0530 Subject: [PATCH 075/172] Bug#11746817:MYSQL_INSTALL_DB CREATES WILDCARD GRANTS WHEN HOST HAS '_' IN THE HOSTNAME Problem: ======= '_' and '%' are treated as a wildcards by the ACL code and this is documented in the manual. The problem with mysql_install_db is that it does not take this into account when creating the initial GRANT tables: --- cut --- REPLACE INTO tmp_user SELECT @current_hostname,'root','','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','', 0,0,0,0 FROM dual WHERE LOWER( @current_hostname) != 'localhost'; --- cut --- If @current_hostname contains any wildcard characters, then a wildcard entry will be defined for the 'root' user, which is a flaw. Analysis: ======== As per the bug description when we have a hostname with a wildcard character in it, it allows clients from several other hosts with similar name pattern to connect to the server as root. For example, if the hostname is like 'host_.com' then the same name is logged in mysql.user table. This allows 'root' users from other hosts like 'host1.com', 'host2.com' ... to connect to the server as root user. While creating the intial GRANT tables we do not have a check for wildcard characters in hostname. Fix: === As part of fix escape character "\" is added before wildcard character to make it a plain character, so that the one and only host with the exact name will be able to connect to the server. scripts/mysql_system_tables_data.sql: while creating default users get the hostname and replace the wildcard characters within the hostname after escaping them. --- scripts/mysql_system_tables_data.sql | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/scripts/mysql_system_tables_data.sql b/scripts/mysql_system_tables_data.sql index e82d5412d75..7203e250656 100644 --- a/scripts/mysql_system_tables_data.sql +++ b/scripts/mysql_system_tables_data.sql @@ -1,4 +1,4 @@ --- Copyright (c) 2007 MySQL AB, 2008 Sun Microsystems, Inc. +-- Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. -- Use is subject to license terms. -- -- This program is free software; you can redistribute it and/or modify @@ -21,7 +21,12 @@ -- When setting up a "cross bootstrap" database (e.g., creating data on a Unix -- host which will later be included in a Windows zip file), any lines -- containing "@current_hostname" are filtered out by mysql_install_db. -set @current_hostname= @@hostname; + +-- Get the hostname, if the hostname has any wildcard character like "_" or "%" +-- add escape character in front of wildcard character to convert "_" or "%" to +-- a plain character +SET @get_hostname= @@hostname; +SELECT REPLACE((SELECT REPLACE(@get_hostname,'_','\_')),'%','\%') INTO @current_hostname; -- Fill "db" table with default grants for anyone to @@ -33,10 +38,9 @@ INSERT INTO db SELECT * FROM tmp_db WHERE @had_db_table=0; DROP TABLE tmp_db; --- Fill "users" table with default users allowing root access --- from local machine if "users" table didn't exist before +-- Fill "user" table with default users allowing root access +-- from local machine if "user" table didn't exist before CREATE TEMPORARY TABLE tmp_user LIKE user; -set @current_hostname= @@hostname; INSERT INTO tmp_user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); REPLACE INTO tmp_user SELECT @current_hostname,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0 FROM dual WHERE LOWER( @current_hostname) != 'localhost'; REPLACE INTO tmp_user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); From 6ca27ddec034eeb7f169b3959207a8c4dd1691ee Mon Sep 17 00:00:00 2001 From: Satya Bodapati Date: Wed, 20 Feb 2013 18:25:18 +0530 Subject: [PATCH 076/172] Testcase fix for BUG#14147491 The random failure will be fixed by Bug#16263506 and this patch Approved by Marko. rb#1988 --- .../suite/innodb/r/innodb_bug14147491.result | 19 ++++++-- .../suite/innodb/t/innodb_bug14147491.test | 46 +++++++++++++++---- storage/innobase/buf/buf0buf.c | 4 ++ 3 files changed, 57 insertions(+), 12 deletions(-) diff --git a/mysql-test/suite/innodb/r/innodb_bug14147491.result b/mysql-test/suite/innodb/r/innodb_bug14147491.result index 6279f85f676..ea7c303624b 100644 --- a/mysql-test/suite/innodb/r/innodb_bug14147491.result +++ b/mysql-test/suite/innodb/r/innodb_bug14147491.result @@ -4,14 +4,25 @@ CALL mtr.add_suppression("InnoDB: Warning: database page corruption or a failed" CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY, b TEXT) ENGINE=InnoDB; INSERT INTO t1 (b) VALUES ('corrupt me'); INSERT INTO t1 (b) VALUES ('corrupt me'); -# Restart server to flush buffers +# Write file to make mysql-test-run.pl expect the "crash", but don't +# start it until it's told to +# We give 30 seconds to do a clean shutdown because we do not want +# to redo apply the pages of t1.ibd at the time of recovery. +# We want SQL to initiate the first access to t1.ibd. +# Wait until disconnected. +# Backup the t1.ibd before corrupting # Corrupt the table Munged a string. Munged a string. -# Write file to make mysql-test-run.pl expect crash and restart +# Write file to make mysql-test-run.pl start up the server again +SET DEBUG = '+d,innodb_page_corruption_retries'; +# Write file to make mysql-test-run.pl expect the "crash", but don't +# start it until it's told to +# The below SELECT query will crash the server because some pages +# on the disk are corrupted SELECT * FROM t1; ERROR HY000: Lost connection to MySQL server during query -# Turn on reconnect -# Wait for server to fully start +# Restore the original t1.ibd +# Write file to make mysql-test-run.pl start up the server again # Cleanup DROP TABLE t1; diff --git a/mysql-test/suite/innodb/t/innodb_bug14147491.test b/mysql-test/suite/innodb/t/innodb_bug14147491.test index ee3519c53fc..8758631c344 100644 --- a/mysql-test/suite/innodb/t/innodb_bug14147491.test +++ b/mysql-test/suite/innodb/t/innodb_bug14147491.test @@ -10,6 +10,8 @@ source include/not_crashrep.inc; source include/not_embedded.inc; # Require InnoDB source include/have_innodb.inc; +# Require Debug for SET DEBUG +source include/have_debug.inc; CALL mtr.add_suppression("InnoDB: Error: Unable to read tablespace .* page no .* into the buffer pool after 100 attempts"); CALL mtr.add_suppression("InnoDB: Warning: database page corruption or a failed"); @@ -27,13 +29,26 @@ while ($i) --enable_query_log INSERT INTO t1 (b) VALUES ('corrupt me'); ---echo # Restart server to flush buffers -source include/restart_mysqld.inc; - ---echo # Corrupt the table let $MYSQLD_DATADIR=`select @@datadir`; let t1_IBD = $MYSQLD_DATADIR/test/t1.ibd; +--echo # Write file to make mysql-test-run.pl expect the "crash", but don't +--echo # start it until it's told to +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect + +--echo # We give 30 seconds to do a clean shutdown because we do not want +--echo # to redo apply the pages of t1.ibd at the time of recovery. +--echo # We want SQL to initiate the first access to t1.ibd. +shutdown_server 30; + +--echo # Wait until disconnected. +--source include/wait_until_disconnected.inc + +--echo # Backup the t1.ibd before corrupting +--copy_file $t1_IBD $MYSQLD_DATADIR/test/t1.ibd.backup + +--echo # Corrupt the table + perl; use strict; use warnings; @@ -59,17 +74,32 @@ while ($len = sysread IBD_FILE, $chunk, 1024) close IBD_FILE; EOF ---echo # Write file to make mysql-test-run.pl expect crash and restart +--echo # Write file to make mysql-test-run.pl start up the server again --exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +--enable_reconnect +--source include/wait_until_connected_again.inc +SET DEBUG = '+d,innodb_page_corruption_retries'; + +--echo # Write file to make mysql-test-run.pl expect the "crash", but don't +--echo # start it until it's told to +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect + +--echo # The below SELECT query will crash the server because some pages +--echo # on the disk are corrupted --error 2013 SELECT * FROM t1; ---echo # Turn on reconnect ---enable_reconnect +--echo # Restore the original t1.ibd +--move_file $MYSQLD_DATADIR/test/t1.ibd.backup $MYSQLD_DATADIR/test/t1.ibd ---echo # Wait for server to fully start +--echo # Write file to make mysql-test-run.pl start up the server again +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect +--enable_reconnect --source include/wait_until_connected_again.inc +# Note SET DEBUG = '-d,innodb_page_corruption_retries' is not required +# because the session information is lost after server restart + --echo # Cleanup DROP TABLE t1; diff --git a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c index 75bd546d2cf..31be914afa0 100644 --- a/storage/innobase/buf/buf0buf.c +++ b/storage/innobase/buf/buf0buf.c @@ -2322,6 +2322,10 @@ loop2: retries = 0; } else if (retries < BUF_PAGE_READ_MAX_RETRIES) { ++retries; + DBUG_EXECUTE_IF( + "innodb_page_corruption_retries", + retries = BUF_PAGE_READ_MAX_RETRIES; + ); } else { fprintf(stderr, "InnoDB: Error: Unable" " to read tablespace %lu page no" From 8b129a8b41d26f2013d580c8216774c2e959e0ae Mon Sep 17 00:00:00 2001 From: Satya Bodapati Date: Thu, 21 Feb 2013 12:16:59 +0530 Subject: [PATCH 077/172] Testcase fix for Bug#14147491 move_file fails randomly on windows if the destination file exists. Using remove_file before move_file mtr test command. --- mysql-test/suite/innodb/t/innodb_bug14147491.test | 1 + 1 file changed, 1 insertion(+) diff --git a/mysql-test/suite/innodb/t/innodb_bug14147491.test b/mysql-test/suite/innodb/t/innodb_bug14147491.test index 8758631c344..7c653268c64 100644 --- a/mysql-test/suite/innodb/t/innodb_bug14147491.test +++ b/mysql-test/suite/innodb/t/innodb_bug14147491.test @@ -91,6 +91,7 @@ SET DEBUG = '+d,innodb_page_corruption_retries'; SELECT * FROM t1; --echo # Restore the original t1.ibd +--remove_file $MYSQLD_DATADIR/test/t1.ibd --move_file $MYSQLD_DATADIR/test/t1.ibd.backup $MYSQLD_DATADIR/test/t1.ibd --echo # Write file to make mysql-test-run.pl start up the server again From f325fc42e83baebd8420449cd3e80974a6bb9ee0 Mon Sep 17 00:00:00 2001 From: Tor Didriksen Date: Wed, 20 Feb 2013 11:24:16 +0100 Subject: [PATCH 078/172] Bug#14300733 CMAKE DOES NOT CHECK FOR ZLIB VERSION Add check for compressBound() and deflateBound() Keep existing functionality: fallback to bundled zlib if functions not found. --- cmake/zlib.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/zlib.cmake b/cmake/zlib.cmake index 3ede3aba228..83597357aba 100644 --- a/cmake/zlib.cmake +++ b/cmake/zlib.cmake @@ -57,13 +57,17 @@ MACRO (MYSQL_CHECK_ZLIB_WITH_COMPRESS) INCLUDE(CheckFunctionExists) SET(CMAKE_REQUIRED_LIBRARIES z) CHECK_FUNCTION_EXISTS(crc32 HAVE_CRC32) + CHECK_FUNCTION_EXISTS(compressBound HAVE_COMPRESSBOUND) + CHECK_FUNCTION_EXISTS(deflateBound HAVE_DEFLATEBOUND) SET(CMAKE_REQUIRED_LIBRARIES) - IF(HAVE_CRC32) + IF(HAVE_CRC32 AND HAVE_COMPRESSBOUND AND HAVE_DEFLATEBOUND) SET(ZLIB_LIBRARY z CACHE INTERNAL "System zlib library") - SET(WITH_ZLIB "system" CACHE STRING "Which zlib to use (possible values are 'bundled' or 'system')") + SET(WITH_ZLIB "system" CACHE STRING + "Which zlib to use (possible values are 'bundled' or 'system')") SET(ZLIB_SOURCES "") ELSE() SET(ZLIB_FOUND FALSE CACHE INTERNAL "Zlib found but not usable") + MESSAGE(STATUS "system zlib found but not usable") ENDIF() ENDIF() IF(NOT ZLIB_FOUND) From 286a7490c7d6de6c731b760737ecc7c3aec397eb Mon Sep 17 00:00:00 2001 From: Daniel Fischer Date: Wed, 20 Feb 2013 12:41:43 +0100 Subject: [PATCH 079/172] Bug #13071597: MYSQL SERVER COMMUNITY TO ADVANCED USING MSI THE INSTALLER Cross-upgrades between GPL and commercial versions should be allowed by the MSI package even when both packages are the same version. Fixed by allowing upgrades to the same numeric version. --- packaging/WiX/mysql_server.wxs.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packaging/WiX/mysql_server.wxs.in b/packaging/WiX/mysql_server.wxs.in index 4c2a856782c..752dc15304e 100644 --- a/packaging/WiX/mysql_server.wxs.in +++ b/packaging/WiX/mysql_server.wxs.in @@ -45,11 +45,13 @@ Minimum="@MAJOR_VERSION@.@MINOR_VERSION@.0" IncludeMinimum="yes" Maximum="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@" + IncludeMaximum="yes" Property="OLDERVERSIONBEINGUPGRADED" MigrateFeatures="yes" /> From dc6969734afbd6598035c81a3e0a7f139083ed65 Mon Sep 17 00:00:00 2001 From: Annamalai Gurusami Date: Fri, 22 Feb 2013 14:56:17 +0530 Subject: [PATCH 080/172] Bug #14211565 CRASH WHEN ATTEMPTING TO SET SYSTEM VARIABLE TO RESULT OF VALUES() Problem: When the VALUES() function is inappropriately used in the SET stmt the server exits. set port = values(v); This happens because the values(v) will be parsed as an Item_insert_value by the parser. Both Item_field and Item_insert_value return the type as FIELD_ITEM. But for Item_insert_value the field_name member is NULL. In set_var constructor, when the type of the item is FIELD_ITEM we try to access the non-existent field_name. The class hierarchy is as follows: Item -> Item_ident -> Item_field -> Item_insert_value The Item_ident::field_name is NULL for Item_insert_value. Solution: In the parsing stage, in the set_var constructor if the item type is FIELD_ITEM and if the field_name is non-existent, then it is probably the Item_insert_value. So leave it as it is for later evaluation. rb://2004 approved by Roy and Norvald. --- sql/set_var.h | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/sql/set_var.h b/sql/set_var.h index 97e3c74593b..7b1dbcddb96 100644 --- a/sql/set_var.h +++ b/sql/set_var.h @@ -1326,13 +1326,23 @@ public: if (value_arg && value_arg->type() == Item::FIELD_ITEM) { Item_field *item= (Item_field*) value_arg; - if (!(value=new Item_string(item->field_name, - (uint) strlen(item->field_name), - item->collation.collation))) - value=value_arg; /* Give error message later */ + if (item->field_name) + { + if (!(value= new Item_string(item->field_name, + (uint) strlen(item->field_name), + item->collation.collation))) + value= value_arg; /* Give error message later */ + } + else + { + /* Both Item_field and Item_insert_value will return the type as + Item::FIELD_ITEM. If the item->field_name is NULL, we assume the + object to be Item_insert_value. */ + value= value_arg; + } } else - value=value_arg; + value= value_arg; } int check(THD *thd); int update(THD *thd); From 04780043ef2bc42780d923c1535051cbe2f3bca9 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 22 Feb 2013 15:22:15 +0100 Subject: [PATCH 081/172] Bug #13619394 - MAKE TEST FAILS ON MY_VSNPRINTF --- unittest/mysys/my_vsnprintf-t.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/unittest/mysys/my_vsnprintf-t.c b/unittest/mysys/my_vsnprintf-t.c index 06f6878826a..349e7469141 100644 --- a/unittest/mysys/my_vsnprintf-t.c +++ b/unittest/mysys/my_vsnprintf-t.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -154,8 +154,10 @@ int main(void) test1("conn 1 to: '(null)' user: '(null)' host: '(null)' ((null))", "conn %ld to: '%-.64s' user: '%-.32s' host: '%-.64s' (%-.64s)", 1L, NULL, NULL, NULL, NULL); +#if defined (__GNUC__) test1("Hello string `I am a string`", "Hello string %`s", "I am a string"); +#endif test1("Hello TEST", "Hello %05s", "TEST"); test1("My `Q` test", From 57674d6342f9755baf38f74fbd74fba06135f65a Mon Sep 17 00:00:00 2001 From: Satya Bodapati Date: Sat, 23 Feb 2013 00:16:36 +0530 Subject: [PATCH 082/172] Testcase fix for Bug#14147491 Sleep 1sec before remove_file to solve windows pb2 issues. We hope that after sleep, the access to the file will not be denied. --- mysql-test/suite/innodb/t/innodb_bug14147491.test | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mysql-test/suite/innodb/t/innodb_bug14147491.test b/mysql-test/suite/innodb/t/innodb_bug14147491.test index 7c653268c64..5224e1402e1 100644 --- a/mysql-test/suite/innodb/t/innodb_bug14147491.test +++ b/mysql-test/suite/innodb/t/innodb_bug14147491.test @@ -90,6 +90,11 @@ SET DEBUG = '+d,innodb_page_corruption_retries'; --error 2013 SELECT * FROM t1; +# The below mtr command --remove_file fails randomly on windows with +# error number 13 which is permission denied on nix systems. We sleep +# 1 second hoping that any process holding lock on t1.ibd is released. +SLEEP 1; + --echo # Restore the original t1.ibd --remove_file $MYSQLD_DATADIR/test/t1.ibd --move_file $MYSQLD_DATADIR/test/t1.ibd.backup $MYSQLD_DATADIR/test/t1.ibd From 50f3a2474652db833bf2ee773f550acbd12c604d Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 23 Feb 2013 10:38:28 +0100 Subject: [PATCH 083/172] From 4cd374a1111942832b2c40727d0f5c56398e9761 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 23 Feb 2013 10:40:23 +0100 Subject: [PATCH 084/172] From 436d8402a15d7b84de620ab68f73abfc565018b4 Mon Sep 17 00:00:00 2001 From: Annamalai Gurusami Date: Mon, 25 Feb 2013 10:28:25 +0530 Subject: [PATCH 085/172] Bug #16044655 CRASH: SETTING DEFAULT VALUE FOR SOME VARIABLES Problem: When a system variable is being set to the DEFAULT value, the server segfaults if there is no 'default' defined for that system variable. For example, for the following statements server segfaults. set session rand_seed1=DEFAULT; set session rand_seed2=DEFAULT; Analysis: The class sys_var represents one system variable. The class set_var represents one system variable that is to be updated. The class set_var contains two pieces of information, the system variable to object (set_var::var) member and the value to be updated (set_var::value). When the given value is 'default', the set_var::value will be NULL. To update a system variable the member set_var::update() will be called, which in turn will call sys_var::update() or sys_var::set_default() depending on whether a value has been provided or not. If the sys_var::set_default() is called, then the default value is obtained either from the session scope or the global scope. This default value is stored in a local temporary set_var object and then passed on to the sys_var::update() call. A local temporary set_var object is needed because sys_var::set_default() does not take set_var as an argument. In the given scenario, the set_var::update() called sys_var::set_default(). And this sys_var::set_default() obtains the default value and then calls sys_var::update(). To pass this value to sys_var::update() a local set_var object is being created. While creating this local set_var object, its member set_var::var was incorrectly left as 0. Solution: Instead of creating a local set_var object, the sys_var::set_default() can take the set_var object as an argument just like sys_var::update(). rb://1996 approved by Nirbhay and Ramil. --- sql/set_var.cc | 17 +++++++---------- sql/set_var.h | 10 ++++++++-- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/sql/set_var.cc b/sql/set_var.cc index 231fbb47d35..75387b974f1 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2002, 2013 Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -256,17 +256,14 @@ uchar *sys_var::value_ptr(THD *thd, enum_var_type type, LEX_STRING *base) return session_value_ptr(thd, base); } -bool sys_var::set_default(THD *thd, enum_var_type type) +bool sys_var::set_default(THD *thd, set_var* var) { - LEX_STRING empty={0,0}; - set_var var(type, 0, &empty, 0); - - if (type == OPT_GLOBAL || scope() == GLOBAL) - global_save_default(thd, &var); + if (var->type == OPT_GLOBAL || scope() == GLOBAL) + global_save_default(thd, var); else - session_save_default(thd, &var); + session_save_default(thd, var); - return check(thd, &var) || update(thd, &var); + return check(thd, var) || update(thd, var); } void sys_var::do_deprecated_warning(THD *thd) @@ -668,7 +665,7 @@ int set_var::light_check(THD *thd) */ int set_var::update(THD *thd) { - return value ? var->update(thd, this) : var->set_default(thd, type); + return value ? var->update(thd, this) : var->set_default(thd, this); } diff --git a/sql/set_var.h b/sql/set_var.h index fc0c5004b5b..c03733f6f82 100644 --- a/sql/set_var.h +++ b/sql/set_var.h @@ -1,6 +1,6 @@ #ifndef SET_VAR_INCLUDED #define SET_VAR_INCLUDED -/* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2002, 2013 Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -107,7 +107,13 @@ public: bool check(THD *thd, set_var *var); uchar *value_ptr(THD *thd, enum_var_type type, LEX_STRING *base); - bool set_default(THD *thd, enum_var_type type); + + /** + Update the system variable with the default value from either + session or global scope. The default value is stored in the + 'var' argument. Return false when successful. + */ + bool set_default(THD *thd, set_var *var); bool update(THD *thd, set_var *var); SHOW_TYPE show_type() { return show_val_type; } From 698d2f1005833e4e8c24c1f604c2681cb9d35c37 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 25 Feb 2013 13:45:00 +0100 Subject: [PATCH 086/172] From 13058fd53f435a95b40e744dc804ed32fc958bd4 Mon Sep 17 00:00:00 2001 From: Akhila Maddukuri Date: Mon, 25 Feb 2013 19:37:46 +0530 Subject: [PATCH 087/172] Bug#16103072 TEST MYSQL_PLUGIN USES UNSAFE WRITE_FILE TO WRITE TO EXPECT FILE --- mysql-test/t/mysql_plugin.test | 66 +++++++++------------------------- 1 file changed, 16 insertions(+), 50 deletions(-) diff --git a/mysql-test/t/mysql_plugin.test b/mysql-test/t/mysql_plugin.test index a05b5a624d9..10bc03e0f06 100644 --- a/mysql-test/t/mysql_plugin.test +++ b/mysql-test/t/mysql_plugin.test @@ -110,13 +110,8 @@ SELECT * FROM mysql.plugin WHERE dl like 'libdaemon%' ORDER BY name; --echo # --echo # Enable the plugin... --echo # -let $expect_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; -# MTR will remove this file later, but this might be too late. ---error 0,1 ---remove_file $expect_file ---write_file $expect_file -wait -EOF + +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --shutdown_server 10 --source include/wait_until_disconnected.inc @@ -132,9 +127,8 @@ EOF # # Restart the server # ---append_file $expect_file -restart -EOF + +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --enable_reconnect --source include/wait_until_connected_again.inc @@ -155,12 +149,7 @@ eval INSERT INTO mysql.plugin VALUES ('wonky', '$DAEMONEXAMPLE'); --replace_regex /\.dll/.so/ SELECT * FROM mysql.plugin WHERE dl like 'libdaemon%' ORDER BY name; -# MTR will remove this file later, but this might be too late. ---error 0,1 ---remove_file $expect_file ---write_file $expect_file -wait -EOF +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --shutdown_server 10 --source include/wait_until_disconnected.inc @@ -177,9 +166,7 @@ EOF # # Restart the server # ---append_file $expect_file -restart -EOF +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --enable_reconnect --source include/wait_until_connected_again.inc @@ -189,12 +176,7 @@ EOF --replace_regex /\.dll/.so/ SELECT * FROM mysql.plugin WHERE dl like '%libdaemon%' ORDER BY name; -# MTR will remove this file later, but this might be too late. ---error 0,1 ---remove_file $expect_file ---write_file $expect_file -wait -EOF +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --shutdown_server 10 --source include/wait_until_disconnected.inc @@ -211,9 +193,7 @@ let $DAEMON_RELOAD = lib$DAEMONEXAMPLE; # # Restart the server # ---append_file $expect_file -restart -EOF +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --enable_reconnect --source include/wait_until_connected_again.inc @@ -226,12 +206,8 @@ SELECT * FROM mysql.plugin WHERE dl like '%libdaemon%' ORDER BY name; --echo # --echo # Disable the plugin... --echo # -# MTR will remove this file later, but this might be too late. ---error 0,1 ---remove_file $expect_file ---write_file $expect_file -wait -EOF + +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --shutdown_server 10 --source include/wait_until_disconnected.inc @@ -248,9 +224,7 @@ EOF # # Restart the server # ---append_file $expect_file -restart -EOF +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --enable_reconnect --source include/wait_until_connected_again.inc @@ -262,13 +236,8 @@ SELECT * FROM mysql.plugin WHERE dl like '%libdaemon%' ORDER BY name; # # Stop the server for error conditions # -let $expect_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; -# MTR will remove this file later, but this might be too late. ---error 0,1 ---remove_file $expect_file ---write_file $expect_file -wait -EOF + +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --shutdown_server 10 --source include/wait_until_disconnected.inc @@ -382,17 +351,14 @@ replace_result $MYSQL_PLUGIN mysql_plugin; # # Restart the server # ---append_file $expect_file -restart -EOF +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --enable_reconnect --source include/wait_until_connected_again.inc # # Cleanup -# MTR will remove this file later, but this might be too late. ---error 0,1 ---remove_file $expect_file + +--remove_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect # Cleanup the share folder in the binary path. --remove_file $MYSQLD_BASEDIR/share/errmsg.sys From 460852b318e9f6862cfa9935506e1f4217b10090 Mon Sep 17 00:00:00 2001 From: Aditya A Date: Tue, 26 Feb 2013 17:57:05 +0530 Subject: [PATCH 088/172] Bug#14653504 CRASH WHEN TRUNCATING PARTITIONS FROM A VIEW! ANALYSIS -------- When we open the view using open_new_frm() ,it doesnt set the table-list->table variable and any access to table_list->table will cause a crash. FIX --- Added a check during execution of the alter partition to return error if table is view. [http://rb.no.oracle.com/rb/r/2001/ Approved by Mattias J ] --- sql/sql_partition_admin.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sql/sql_partition_admin.cc b/sql/sql_partition_admin.cc index 4edd47de855..b9bf3dbc217 100644 --- a/sql/sql_partition_admin.cc +++ b/sql/sql_partition_admin.cc @@ -141,7 +141,9 @@ bool Alter_table_truncate_partition_statement::execute(THD *thd) TODO: Add support for TRUNCATE PARTITION for NDB and other engines supporting native partitioning. */ - if (first_table->table->s->db_type() != partition_hton) + + if (!first_table->table || first_table->view || + first_table->table->s->db_type() != partition_hton) { my_error(ER_PARTITION_MGMT_ON_NONPARTITIONED, MYF(0)); DBUG_RETURN(TRUE); From 97a74e5b102628309b6c58b55016446bc86f869f Mon Sep 17 00:00:00 2001 From: Tor Didriksen Date: Mon, 25 Feb 2013 10:42:40 +0100 Subject: [PATCH 089/172] Bug#16062056 REMOVE THE "DUMMY.BAK" FILE FROM THE TEST DATABASE, AND ADD DB.OPT 1. remove dummy.bak 2. create a db.opt file containing two lines: --- default-character-set=latin1 default-collation=latin1_swedish_ci --- sql/CMakeLists.txt | 12 +++--------- sql/db.opt | 2 ++ 2 files changed, 5 insertions(+), 9 deletions(-) create mode 100644 sql/db.opt diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt index d79b732005b..d4db337d765 100644 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt @@ -261,15 +261,9 @@ ADD_CUSTOM_TARGET(distclean IF(INSTALL_LAYOUT STREQUAL "STANDALONE") -# We need to create empty directories (data/test) the installation. -# This does not work with current CPack due to http://www.cmake.org/Bug/view.php?id=8767 -# Avoid completely empty directories and install dummy file instead. -# Use a file extension so that it will be deleted in case someone does -# 'drop database test' -# See deletable_extentions. -SET(DUMMY_FILE ${CMAKE_CURRENT_BINARY_DIR}/dummy.bak ) -FILE(WRITE ${DUMMY_FILE} "") -INSTALL(FILES ${DUMMY_FILE} DESTINATION data/test COMPONENT DataFiles) +# Copy db.opt into data/test/ +SET(DBOPT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/db.opt ) +INSTALL(FILES ${DBOPT_FILE} DESTINATION data/test COMPONENT DataFiles) # Install initial database on windows IF(NOT CMAKE_CROSSCOMPILING) diff --git a/sql/db.opt b/sql/db.opt new file mode 100644 index 00000000000..d8429c4e0de --- /dev/null +++ b/sql/db.opt @@ -0,0 +1,2 @@ +default-character-set=latin1 +default-collation=latin1_swedish_ci From 053d7e775c3b369debbb71e26244fc4c76688f48 Mon Sep 17 00:00:00 2001 From: Murthy Narkedimilli Date: Mon, 25 Feb 2013 15:26:00 +0100 Subject: [PATCH 090/172] Updated/added copyright headers. --- BUILD/Makefile.am | 2 +- BUILD/autorun.sh | 2 +- BUILD/compile-alpha-ccc | 2 +- BUILD/compile-alpha-cxx | 2 +- BUILD/compile-alpha-debug | 2 +- BUILD/compile-amd64-debug-max | 2 +- BUILD/compile-amd64-max | 2 +- BUILD/compile-darwin-mwcc | 2 +- BUILD/compile-hpux11-parisc2-aCC | 2 +- BUILD/compile-ia64-debug-max | 2 +- BUILD/compile-irix-mips64-mipspro | 2 +- BUILD/compile-pentium | 2 +- BUILD/compile-pentium-debug-max-no-embedded | 2 +- BUILD/compile-pentium-debug-openssl | 2 +- BUILD/compile-pentium-debug-yassl | 2 +- BUILD/compile-pentium-max | 2 +- BUILD/compile-pentium-pgcc | 2 +- BUILD/compile-ppc-debug | 2 +- BUILD/compile-ppc-debug-max | 2 +- BUILD/compile-ppc-debug-max-no-ndb | 2 +- BUILD/compile-ppc-max | 2 +- BUILD/compile-solaris-sparc-debug | 2 +- BUILD/compile-solaris-sparc-purify | 2 +- CMakeLists.txt | 2 +- Docs/Makefile.am | 2 +- Makefile.am | 2 +- client/completion_hash.cc | 2 +- client/completion_hash.h | 2 +- client/echo.c | 2 +- client/get_password.c | 2 +- client/mysqldump.c | 2 +- client/sql_string.cc | 2 +- cmd-line-utils/Makefile.am | 2 +- dbug/CMakeLists.txt | 2 +- extra/CMakeLists.txt | 2 +- extra/Makefile.am | 2 +- extra/charset2html.c | 2 +- extra/yassl/CMakeLists.txt | 2 +- extra/yassl/Makefile.am | 2 +- extra/yassl/examples/client/client.cpp | 2 +- extra/yassl/examples/echoclient/echoclient.cpp | 2 +- extra/yassl/examples/echoserver/echoserver.cpp | 2 +- extra/yassl/examples/server/server.cpp | 2 +- extra/yassl/include/buffer.hpp | 2 +- extra/yassl/include/cert_wrapper.hpp | 3 +-- extra/yassl/include/lock.hpp | 2 +- extra/yassl/include/openssl/prefix_ssl.h | 3 +-- extra/yassl/include/socket_wrapper.hpp | 2 +- extra/yassl/include/yassl_error.hpp | 3 +-- extra/yassl/include/yassl_imp.hpp | 3 +-- extra/yassl/include/yassl_int.hpp | 2 +- extra/yassl/include/yassl_types.hpp | 3 +-- extra/yassl/src/buffer.cpp | 3 +-- extra/yassl/src/cert_wrapper.cpp | 3 +-- extra/yassl/src/crypto_wrapper.cpp | 2 +- extra/yassl/src/handshake.cpp | 3 +-- extra/yassl/src/lock.cpp | 2 +- extra/yassl/src/make.bat | 2 +- extra/yassl/src/socket_wrapper.cpp | 2 +- extra/yassl/src/ssl.cpp | 3 +-- extra/yassl/src/template_instnt.cpp | 2 +- extra/yassl/src/yassl.cpp | 2 +- extra/yassl/src/yassl_error.cpp | 2 +- extra/yassl/taocrypt/Makefile.am | 2 +- extra/yassl/taocrypt/benchmark/benchmark.cpp | 2 +- extra/yassl/taocrypt/benchmark/make.bat | 2 +- extra/yassl/taocrypt/include/aes.hpp | 2 +- extra/yassl/taocrypt/include/asn.hpp | 3 +-- extra/yassl/taocrypt/include/block.hpp | 3 +-- extra/yassl/taocrypt/include/blowfish.hpp | 2 +- extra/yassl/taocrypt/include/des.hpp | 2 +- extra/yassl/taocrypt/include/hash.hpp | 2 +- extra/yassl/taocrypt/include/hc128.hpp | 2 +- extra/yassl/taocrypt/include/integer.hpp | 2 +- extra/yassl/taocrypt/include/kernelc.hpp | 2 +- extra/yassl/taocrypt/include/misc.hpp | 2 +- extra/yassl/taocrypt/include/modes.hpp | 3 +-- extra/yassl/taocrypt/include/pwdbased.hpp | 2 +- extra/yassl/taocrypt/include/rabbit.hpp | 2 +- extra/yassl/taocrypt/include/rsa.hpp | 2 +- extra/yassl/taocrypt/include/runtime.hpp | 2 +- extra/yassl/taocrypt/include/types.hpp | 2 +- extra/yassl/taocrypt/mySTL/stdexcept.hpp | 2 +- extra/yassl/taocrypt/mySTL/vector.hpp | 2 +- extra/yassl/taocrypt/src/Makefile.am | 2 +- extra/yassl/taocrypt/src/aes.cpp | 2 +- extra/yassl/taocrypt/src/aestables.cpp | 2 +- extra/yassl/taocrypt/src/algebra.cpp | 2 +- extra/yassl/taocrypt/src/arc4.cpp | 2 +- extra/yassl/taocrypt/src/blowfish.cpp | 2 +- extra/yassl/taocrypt/src/coding.cpp | 2 +- extra/yassl/taocrypt/src/dsa.cpp | 2 +- extra/yassl/taocrypt/src/hash.cpp | 2 +- extra/yassl/taocrypt/src/hc128.cpp | 2 +- extra/yassl/taocrypt/src/make.bat | 2 +- extra/yassl/taocrypt/src/md4.cpp | 2 +- extra/yassl/taocrypt/src/md5.cpp | 2 +- extra/yassl/taocrypt/src/misc.cpp | 2 +- extra/yassl/taocrypt/src/rabbit.cpp | 2 +- extra/yassl/taocrypt/src/random.cpp | 2 +- extra/yassl/taocrypt/src/ripemd.cpp | 2 +- extra/yassl/taocrypt/src/rsa.cpp | 2 +- extra/yassl/taocrypt/src/sha.cpp | 2 +- extra/yassl/taocrypt/src/template_instnt.cpp | 2 +- extra/yassl/taocrypt/src/twofish.cpp | 2 +- extra/yassl/taocrypt/test/make.bat | 2 +- extra/yassl/taocrypt/test/memory.cpp | 2 +- extra/yassl/taocrypt/test/test.cpp | 2 +- extra/yassl/testsuite/make.bat | 2 +- extra/yassl/testsuite/test.hpp | 2 +- extra/yassl/testsuite/testsuite.cpp | 2 +- include/base64.h | 2 +- include/errmsg.h | 2 +- include/ft_global.h | 2 +- include/help_end.h | 2 +- include/help_start.h | 2 +- include/keycache.h | 2 +- include/m_ctype.h | 2 +- include/m_string.h | 2 +- include/my_aes.h | 2 +- include/my_alloc.h | 2 +- include/my_attribute.h | 2 +- include/my_base.h | 3 +-- include/my_compiler.h | 2 +- include/my_dir.h | 2 +- include/my_libwrap.h | 2 +- include/my_list.h | 2 +- include/my_md5.h | 2 +- include/my_net.h | 2 +- include/my_nosys.h | 2 +- include/my_sys.h | 2 +- include/my_tree.h | 2 +- include/my_trie.h | 2 +- include/my_user.h | 2 +- include/my_vle.h | 2 +- include/my_xml.h | 2 +- include/myisampack.h | 2 +- include/mysql_time.h | 2 +- include/mysql_version.h.in | 2 +- include/queues.h | 2 +- include/rijndael.h | 2 +- include/sslopt-case.h | 2 +- include/sslopt-vars.h | 2 +- include/thr_alarm.h | 2 +- include/typelib.h | 2 +- include/violite.h | 3 +-- include/welcome_copyright_notice.h | 2 +- libmysql/Makefile.am | 3 +-- libmysql/client_settings.h | 2 +- libmysql/conf_to_src.c | 2 +- libmysql/dll.c | 2 +- libmysql/errmsg.c | 2 +- libmysql/get_password.c | 2 +- libmysql/manager.c | 3 +-- libmysql_r/Makefile.am | 2 +- libmysqld/emb_qcache.cc | 2 +- libmysqld/examples/CMakeLists.txt | 3 +-- libmysqld/examples/Makefile.am | 2 +- mysql-test/include/default_my.cnf | 2 +- mysql-test/include/default_mysqld.cnf | 2 +- mysql-test/lib/My/Find.pm | 2 +- mysql-test/lib/My/SafeProcess/CMakeLists.txt | 2 +- mysql-test/lib/My/SafeProcess/safe_process.cc | 2 +- mysql-test/lib/mtr_cases.pm | 2 +- mysql-test/lib/mtr_match.pm | 2 +- mysql-test/lib/v1/mysql-test-run.pl | 2 +- mysys/array.c | 2 +- mysys/checksum.c | 2 +- mysys/default_modify.c | 2 +- mysys/errors.c | 2 +- mysys/list.c | 2 +- mysys/make-conf.c | 2 +- mysys/md5.c | 2 +- mysys/mf_brkhant.c | 2 +- mysys/mf_cache.c | 2 +- mysys/mf_dirname.c | 2 +- mysys/mf_fn_ext.c | 2 +- mysys/mf_format.c | 2 +- mysys/mf_getdate.c | 2 +- mysys/mf_iocache2.c | 3 +-- mysys/mf_keycaches.c | 2 +- mysys/mf_path.c | 2 +- mysys/mf_qsort.c | 2 +- mysys/mf_radix.c | 2 +- mysys/mf_same.c | 2 +- mysys/mf_sort.c | 2 +- mysys/mf_soundex.c | 2 +- mysys/mf_tempfile.c | 2 +- mysys/mf_unixpath.c | 2 +- mysys/mf_wcomp.c | 2 +- mysys/mulalloc.c | 2 +- mysys/my_access.c | 2 +- mysys/my_aes.c | 2 +- mysys/my_append.c | 2 +- mysys/my_bit.c | 2 +- mysys/my_chsize.c | 2 +- mysys/my_clock.c | 2 +- mysys/my_compress.c | 2 +- mysys/my_conio.c | 2 +- mysys/my_crc32.c | 2 +- mysys/my_create.c | 2 +- mysys/my_delete.c | 2 +- mysys/my_div.c | 2 +- mysys/my_dup.c | 2 +- mysys/my_error.c | 3 +-- mysys/my_fopen.c | 2 +- mysys/my_getpagesize.c | 2 +- mysys/my_handler_errors.h | 3 +-- mysys/my_init.c | 2 +- mysys/my_largepage.c | 2 +- mysys/my_libwrap.c | 2 +- mysys/my_lock.c | 2 +- mysys/my_lockmem.c | 2 +- mysys/my_memmem.c | 2 +- mysys/my_messnc.c | 2 +- mysys/my_mkdir.c | 2 +- mysys/my_mmap.c | 2 +- mysys/my_netware.c | 2 +- mysys/my_new.cc | 2 +- mysys/my_once.c | 2 +- mysys/my_open.c | 2 +- mysys/my_pthread.c | 2 +- mysys/my_quick.c | 2 +- mysys/my_read.c | 2 +- mysys/my_realloc.c | 2 +- mysys/my_rename.c | 2 +- mysys/my_sleep.c | 2 +- mysys/my_static.h | 2 +- mysys/my_symlink2.c | 2 +- mysys/my_vle.c | 2 +- mysys/my_windac.c | 2 +- mysys/my_winthread.c | 2 +- mysys/my_write.c | 3 +-- mysys/mysys_priv.h | 2 +- mysys/ptr_cmp.c | 2 +- mysys/queues.c | 2 +- mysys/rijndael.c | 2 +- mysys/stacktrace.c | 2 +- mysys/test_charset.c | 2 +- mysys/test_dir.c | 2 +- mysys/test_fn.c | 2 +- mysys/test_xml.c | 2 +- mysys/testhash.c | 2 +- mysys/thr_alarm.c | 2 +- mysys/thr_rwlock.c | 2 +- mysys/tree.c | 2 +- mysys/trie.c | 2 +- netware/mysql_fix_privilege_tables.pl | 2 +- netware/mysql_secure_installation.pl | 2 +- plugin/daemon_example/daemon_example.cc | 2 +- plugin/fulltext/Makefile.am | 2 +- scripts/CMakeLists.txt | 2 +- scripts/comp_sql.c | 2 +- scripts/make_binary_distribution.sh | 2 +- scripts/mysql_fix_privilege_tables.sh | 2 +- scripts/mysql_install_db.pl.in | 2 +- scripts/mysqlbug.sh | 2 +- scripts/mysqld_multi.sh | 2 +- server-tools/CMakeLists.txt | 2 +- server-tools/instance-manager/CMakeLists.txt | 2 +- server-tools/instance-manager/IMService.cpp | 2 +- server-tools/instance-manager/IMService.h | 2 +- server-tools/instance-manager/Makefile.am | 2 +- server-tools/instance-manager/WindowsService.cpp | 2 +- server-tools/instance-manager/WindowsService.h | 2 +- server-tools/instance-manager/angel.cc | 2 +- server-tools/instance-manager/angel.h | 2 +- server-tools/instance-manager/buffer.h | 2 +- server-tools/instance-manager/command.cc | 2 +- server-tools/instance-manager/command.h | 2 +- server-tools/instance-manager/commands.h | 2 +- server-tools/instance-manager/guardian.cc | 2 +- server-tools/instance-manager/guardian.h | 2 +- server-tools/instance-manager/instance.h | 2 +- server-tools/instance-manager/instance_map.h | 2 +- server-tools/instance-manager/instance_options.h | 2 +- server-tools/instance-manager/listener.h | 2 +- server-tools/instance-manager/log.cc | 2 +- server-tools/instance-manager/manager.cc | 2 +- server-tools/instance-manager/manager.h | 2 +- server-tools/instance-manager/mysql_manager_error.h | 2 +- server-tools/instance-manager/mysqlmanager.cc | 2 +- server-tools/instance-manager/parse_output.h | 2 +- server-tools/instance-manager/portability.h | 2 +- server-tools/instance-manager/priv.cc | 2 +- server-tools/instance-manager/priv.h | 2 +- server-tools/instance-manager/protocol.h | 2 +- server-tools/instance-manager/thread_registry.cc | 2 +- server-tools/instance-manager/thread_registry.h | 2 +- sql-common/pack.c | 2 +- sql/Makefile.am | 2 +- sql/custom_conf.h | 2 +- sql/des_key_file.cc | 2 +- sql/discover.cc | 2 +- sql/event_data_objects.h | 2 +- sql/event_queue.cc | 2 +- sql/event_queue.h | 2 +- sql/event_scheduler.cc | 3 +-- sql/event_scheduler.h | 2 +- sql/events.h | 2 +- sql/field.cc | 2 +- sql/field.h | 2 +- sql/field_conv.cc | 2 +- sql/frm_crypt.cc | 2 +- sql/gstream.cc | 2 +- sql/gstream.h | 2 +- sql/ha_ndbcluster.h | 2 +- sql/ha_ndbcluster_binlog.cc | 2 +- sql/ha_ndbcluster_binlog.h | 2 +- sql/ha_ndbcluster_cond.cc | 2 +- sql/ha_ndbcluster_cond.h | 2 +- sql/ha_ndbcluster_tables.h | 2 +- sql/handler.cc | 2 +- sql/hash_filo.cc | 2 +- sql/hash_filo.h | 2 +- sql/hostname.cc | 2 +- sql/init.cc | 2 +- sql/item_cmpfunc.h | 2 +- sql/item_func.h | 2 +- sql/item_row.cc | 2 +- sql/item_strfunc.cc | 2 +- sql/item_subselect.cc | 2 +- sql/item_xmlfunc.cc | 2 +- sql/item_xmlfunc.h | 2 +- sql/lex_symbol.h | 2 +- sql/log.cc | 2 +- sql/log_event_old.h | 2 +- sql/mem_root_array.h | 2 +- sql/mf_iocache.cc | 2 +- sql/my_lock.c | 2 +- sql/mysql_priv.h | 2 +- sql/mysqld.cc | 2 +- sql/mysqld_suffix.h | 2 +- sql/opt_range.cc | 2 +- sql/partition_element.h | 2 +- sql/password.c | 2 +- sql/procedure.cc | 2 +- sql/procedure.h | 2 +- sql/records.cc | 2 +- sql/repl_failsafe.h | 2 +- sql/rpl_filter.h | 2 +- sql/rpl_injector.h | 2 +- sql/rpl_record_old.h | 2 +- sql/rpl_rli.cc | 2 +- sql/rpl_rli.h | 2 +- sql/rpl_tblmap.h | 2 +- sql/rpl_utility.cc | 2 +- sql/rpl_utility.h | 2 +- sql/set_var.cc | 2 +- sql/share/charsets/Index.xml | 2 +- sql/share/charsets/armscii8.xml | 2 +- sql/share/charsets/ascii.xml | 2 +- sql/share/charsets/cp1250.xml | 2 +- sql/share/charsets/cp852.xml | 2 +- sql/share/charsets/hebrew.xml | 2 +- sql/share/charsets/latin1.xml | 2 +- sql/share/charsets/latin2.xml | 2 +- sql/share/charsets/latin5.xml | 2 +- sql/signal_handler.cc | 2 +- sql/slave.cc | 2 +- sql/sp_cache.h | 2 +- sql/sp_head.cc | 2 +- sql/sp_head.h | 2 +- sql/sp_rcontext.h | 2 +- sql/spatial.cc | 2 +- sql/spatial.h | 2 +- sql/sql_acl.cc | 2 +- sql/sql_analyse.h | 2 +- sql/sql_array.h | 2 +- sql/sql_base.cc | 2 +- sql/sql_bitmap.h | 2 +- sql/sql_cache.cc | 2 +- sql/sql_class.cc | 2 +- sql/sql_class.h | 2 +- sql/sql_client.cc | 2 +- sql/sql_cursor.h | 2 +- sql/sql_db.cc | 2 +- sql/sql_derived.cc | 2 +- sql/sql_do.cc | 2 +- sql/sql_error.h | 2 +- sql/sql_insert.cc | 2 +- sql/sql_lex.cc | 2 +- sql/sql_lex.h | 2 +- sql/sql_list.cc | 2 +- sql/sql_load.cc | 2 +- sql/sql_map.cc | 2 +- sql/sql_map.h | 2 +- sql/sql_partition.cc | 2 +- sql/sql_prepare.cc | 2 +- sql/sql_profile.h | 3 +-- sql/sql_repl.h | 2 +- sql/sql_servers.h | 2 +- sql/sql_show.h | 3 +-- sql/sql_sort.h | 2 +- sql/sql_string.cc | 2 +- sql/sql_trigger.cc | 2 +- sql/sql_udf.h | 2 +- sql/sql_view.cc | 2 +- sql/sql_yacc.yy | 2 +- sql/table.cc | 2 +- sql/table.h | 2 +- sql/tzfile.h | 2 +- sql/tztime.cc | 2 +- storage/archive/archive_test.c | 2 +- storage/archive/ha_archive.h | 2 +- storage/federated/ha_federated.cc | 2 +- storage/heap/_check.c | 2 +- storage/heap/_rectest.c | 2 +- storage/heap/heapdef.h | 2 +- storage/heap/hp_block.c | 2 +- storage/heap/hp_clear.c | 2 +- storage/heap/hp_close.c | 2 +- storage/heap/hp_delete.c | 2 +- storage/heap/hp_extra.c | 2 +- storage/heap/hp_open.c | 2 +- storage/heap/hp_panic.c | 2 +- storage/heap/hp_rename.c | 2 +- storage/heap/hp_rfirst.c | 2 +- storage/heap/hp_rkey.c | 2 +- storage/heap/hp_rlast.c | 2 +- storage/heap/hp_rnext.c | 2 +- storage/heap/hp_rprev.c | 2 +- storage/heap/hp_rrnd.c | 2 +- storage/heap/hp_rsame.c | 2 +- storage/heap/hp_scan.c | 2 +- storage/heap/hp_static.c | 2 +- storage/heap/hp_test1.c | 2 +- storage/heap/hp_update.c | 2 +- storage/myisam/ft_boolean_search.c | 2 +- storage/myisam/ft_eval.c | 2 +- storage/myisam/ft_eval.h | 2 +- storage/myisam/ft_nlq_search.c | 2 +- storage/myisam/ft_static.c | 2 +- storage/myisam/ft_stem.c | 2 +- storage/myisam/ft_test1.c | 2 +- storage/myisam/ft_test1.h | 2 +- storage/myisam/ft_update.c | 2 +- storage/myisam/ftbench/Ecompare.pl | 2 +- storage/myisam/ftbench/Ecreate.pl | 2 +- storage/myisam/ftbench/Ereport.pl | 2 +- storage/myisam/ftbench/ft-test-run.sh | 2 +- storage/myisam/mi_cache.c | 2 +- storage/myisam/mi_changed.c | 2 +- storage/myisam/mi_checksum.c | 2 +- storage/myisam/mi_info.c | 2 +- storage/myisam/mi_key.c | 2 +- storage/myisam/mi_keycache.c | 2 +- storage/myisam/mi_log.c | 2 +- storage/myisam/mi_panic.c | 2 +- storage/myisam/mi_rename.c | 2 +- storage/myisam/mi_rfirst.c | 2 +- storage/myisam/mi_rkey.c | 2 +- storage/myisam/mi_rlast.c | 2 +- storage/myisam/mi_rnext_same.c | 2 +- storage/myisam/mi_rprev.c | 2 +- storage/myisam/mi_rrnd.c | 2 +- storage/myisam/mi_rsame.c | 2 +- storage/myisam/mi_rsamepos.c | 2 +- storage/myisam/mi_scan.c | 2 +- storage/myisam/mi_statrec.c | 2 +- storage/myisam/mi_test3.c | 2 +- storage/myisam/mi_write.c | 2 +- storage/myisam/myisamchk.c | 2 +- storage/myisam/rt_index.h | 2 +- storage/myisam/rt_key.c | 2 +- storage/myisam/rt_key.h | 2 +- storage/myisam/rt_mbr.c | 2 +- storage/myisam/rt_mbr.h | 2 +- storage/myisam/rt_test.c | 2 +- storage/myisam/sp_defs.h | 2 +- storage/myisam/sp_key.c | 2 +- storage/myisammrg/Makefile.am | 2 +- storage/myisammrg/myrg_close.c | 2 +- storage/myisammrg/myrg_def.h | 2 +- storage/myisammrg/myrg_delete.c | 2 +- storage/myisammrg/myrg_extra.c | 2 +- storage/myisammrg/myrg_locking.c | 2 +- storage/myisammrg/myrg_panic.c | 2 +- storage/myisammrg/myrg_queue.c | 2 +- storage/myisammrg/myrg_range.c | 2 +- storage/myisammrg/myrg_rfirst.c | 2 +- storage/myisammrg/myrg_rlast.c | 2 +- storage/myisammrg/myrg_rnext.c | 2 +- storage/myisammrg/myrg_rnext_same.c | 2 +- storage/myisammrg/myrg_rprev.c | 2 +- storage/myisammrg/myrg_rrnd.c | 2 +- storage/myisammrg/myrg_rsame.c | 2 +- storage/myisammrg/myrg_static.c | 2 +- storage/myisammrg/myrg_update.c | 2 +- storage/myisammrg/myrg_write.c | 2 +- storage/ndb/config/make-win-dsw.sh | 2 +- storage/ndb/config/type_mgmapiclient.mk.am | 2 +- storage/ndb/config/type_ndbapiclient.mk.am | 2 +- storage/ndb/config/win-includes | 2 +- storage/ndb/config/win-libraries | 2 +- storage/ndb/config/win-name | 2 +- storage/ndb/config/win-sources | 2 +- storage/ndb/docs/Makefile.am | 2 +- storage/ndb/docs/doxygen/postdoxy.pl | 2 +- storage/ndb/docs/doxygen/predoxy.pl | 2 +- storage/ndb/include/Makefile.am | 2 +- storage/ndb/include/debugger/DebuggerNames.hpp | 2 +- storage/ndb/include/debugger/EventLogger.hpp | 2 +- storage/ndb/include/debugger/GrepError.hpp | 2 +- storage/ndb/include/debugger/SignalLoggerManager.hpp | 2 +- storage/ndb/include/editline/editline.h | 2 +- storage/ndb/include/kernel/AttributeDescriptor.hpp | 2 +- storage/ndb/include/kernel/AttributeHeader.hpp | 2 +- storage/ndb/include/kernel/AttributeList.hpp | 2 +- storage/ndb/include/kernel/BlockNumbers.h | 2 +- storage/ndb/include/kernel/GlobalSignalNumbers.h | 2 +- storage/ndb/include/kernel/GrepEvent.hpp | 2 +- storage/ndb/include/kernel/Interpreter.hpp | 2 +- storage/ndb/include/kernel/LogLevel.hpp | 2 +- storage/ndb/include/kernel/NodeBitmask.hpp | 2 +- storage/ndb/include/kernel/NodeInfo.hpp | 2 +- storage/ndb/include/kernel/NodeState.hpp | 2 +- storage/ndb/include/kernel/RefConvert.hpp | 2 +- storage/ndb/include/kernel/kernel_config_parameters.h | 2 +- storage/ndb/include/kernel/kernel_types.h | 2 +- storage/ndb/include/kernel/ndb_limits.h | 2 +- storage/ndb/include/kernel/signaldata/AbortAll.hpp | 2 +- storage/ndb/include/kernel/signaldata/AccFrag.hpp | 2 +- storage/ndb/include/kernel/signaldata/AccLock.hpp | 2 +- storage/ndb/include/kernel/signaldata/AccScan.hpp | 2 +- storage/ndb/include/kernel/signaldata/AccSizeAltReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/AllocNodeId.hpp | 2 +- storage/ndb/include/kernel/signaldata/AlterIndx.hpp | 2 +- storage/ndb/include/kernel/signaldata/AlterTab.hpp | 2 +- storage/ndb/include/kernel/signaldata/AlterTable.hpp | 2 +- storage/ndb/include/kernel/signaldata/AlterTrig.hpp | 2 +- storage/ndb/include/kernel/signaldata/ApiBroadcast.hpp | 2 +- storage/ndb/include/kernel/signaldata/ApiRegSignalData.hpp | 2 +- storage/ndb/include/kernel/signaldata/ApiVersion.hpp | 2 +- storage/ndb/include/kernel/signaldata/ArbitSignalData.hpp | 2 +- storage/ndb/include/kernel/signaldata/AttrInfo.hpp | 2 +- storage/ndb/include/kernel/signaldata/BackupContinueB.hpp | 2 +- storage/ndb/include/kernel/signaldata/BackupImpl.hpp | 2 +- storage/ndb/include/kernel/signaldata/BackupSignalData.hpp | 2 +- storage/ndb/include/kernel/signaldata/BlockCommitOrd.hpp | 2 +- storage/ndb/include/kernel/signaldata/BuildIndx.hpp | 2 +- storage/ndb/include/kernel/signaldata/CheckNodeGroups.hpp | 2 +- storage/ndb/include/kernel/signaldata/CloseComReqConf.hpp | 2 +- storage/ndb/include/kernel/signaldata/CmInit.hpp | 2 +- storage/ndb/include/kernel/signaldata/CmRegSignalData.hpp | 2 +- storage/ndb/include/kernel/signaldata/CmvmiCfgConf.hpp | 2 +- storage/ndb/include/kernel/signaldata/CntrMasterConf.hpp | 2 +- storage/ndb/include/kernel/signaldata/CntrMasterReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/CntrStart.hpp | 2 +- storage/ndb/include/kernel/signaldata/ConfigParamId.hpp | 2 +- storage/ndb/include/kernel/signaldata/ContinueFragmented.hpp | 2 +- storage/ndb/include/kernel/signaldata/CopyActive.hpp | 2 +- storage/ndb/include/kernel/signaldata/CopyFrag.hpp | 2 +- storage/ndb/include/kernel/signaldata/CopyGCIReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/CreateEvnt.hpp | 2 +- storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp | 2 +- storage/ndb/include/kernel/signaldata/CreateFilegroupImpl.hpp | 2 +- storage/ndb/include/kernel/signaldata/CreateFrag.hpp | 2 +- storage/ndb/include/kernel/signaldata/CreateFragmentation.hpp | 2 +- storage/ndb/include/kernel/signaldata/CreateIndx.hpp | 2 +- storage/ndb/include/kernel/signaldata/CreateObj.hpp | 2 +- storage/ndb/include/kernel/signaldata/CreateTab.hpp | 2 +- storage/ndb/include/kernel/signaldata/CreateTable.hpp | 2 +- storage/ndb/include/kernel/signaldata/CreateTrig.hpp | 2 +- storage/ndb/include/kernel/signaldata/DiAddTab.hpp | 2 +- storage/ndb/include/kernel/signaldata/DiGetNodes.hpp | 2 +- storage/ndb/include/kernel/signaldata/DictLock.hpp | 2 +- storage/ndb/include/kernel/signaldata/DictObjOp.hpp | 2 +- storage/ndb/include/kernel/signaldata/DictSchemaInfo.hpp | 2 +- storage/ndb/include/kernel/signaldata/DictSizeAltReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/DictStart.hpp | 2 +- storage/ndb/include/kernel/signaldata/DictTabInfo.hpp | 2 +- storage/ndb/include/kernel/signaldata/DihAddFrag.hpp | 2 +- storage/ndb/include/kernel/signaldata/DihContinueB.hpp | 2 +- storage/ndb/include/kernel/signaldata/DihSizeAltReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/DihStartTab.hpp | 2 +- storage/ndb/include/kernel/signaldata/DihSwitchReplica.hpp | 2 +- storage/ndb/include/kernel/signaldata/DisconnectRep.hpp | 2 +- storage/ndb/include/kernel/signaldata/DropFilegroup.hpp | 2 +- storage/ndb/include/kernel/signaldata/DropFilegroupImpl.hpp | 2 +- storage/ndb/include/kernel/signaldata/DropIndx.hpp | 2 +- storage/ndb/include/kernel/signaldata/DropObj.hpp | 2 +- storage/ndb/include/kernel/signaldata/DropTab.hpp | 2 +- storage/ndb/include/kernel/signaldata/DropTabFile.hpp | 2 +- storage/ndb/include/kernel/signaldata/DropTable.hpp | 2 +- storage/ndb/include/kernel/signaldata/DropTrig.hpp | 2 +- storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp | 2 +- storage/ndb/include/kernel/signaldata/EmptyLcp.hpp | 2 +- storage/ndb/include/kernel/signaldata/EndTo.hpp | 2 +- storage/ndb/include/kernel/signaldata/EventReport.hpp | 2 +- storage/ndb/include/kernel/signaldata/EventSubscribeReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/ExecFragReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/Extent.hpp | 2 +- storage/ndb/include/kernel/signaldata/FailRep.hpp | 2 +- storage/ndb/include/kernel/signaldata/FireTrigOrd.hpp | 2 +- storage/ndb/include/kernel/signaldata/FsAppendReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/FsCloseReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/FsConf.hpp | 2 +- storage/ndb/include/kernel/signaldata/FsOpenReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/FsReadWriteReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/FsRef.hpp | 2 +- storage/ndb/include/kernel/signaldata/FsRemoveReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/GCPSave.hpp | 2 +- storage/ndb/include/kernel/signaldata/GetTabInfo.hpp | 2 +- storage/ndb/include/kernel/signaldata/GetTableId.hpp | 2 +- storage/ndb/include/kernel/signaldata/GrepImpl.hpp | 2 +- storage/ndb/include/kernel/signaldata/HotSpareRep.hpp | 2 +- storage/ndb/include/kernel/signaldata/IndxAttrInfo.hpp | 2 +- storage/ndb/include/kernel/signaldata/IndxKeyInfo.hpp | 2 +- .../ndb/include/kernel/signaldata/InvalidateNodeLCPConf.hpp | 2 +- storage/ndb/include/kernel/signaldata/InvalidateNodeLCPReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/KeyInfo.hpp | 2 +- storage/ndb/include/kernel/signaldata/LCP.hpp | 2 +- storage/ndb/include/kernel/signaldata/LgmanContinueB.hpp | 2 +- storage/ndb/include/kernel/signaldata/ListTables.hpp | 2 +- storage/ndb/include/kernel/signaldata/LqhFrag.hpp | 2 +- storage/ndb/include/kernel/signaldata/LqhKey.hpp | 2 +- storage/ndb/include/kernel/signaldata/LqhSizeAltReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/LqhTransConf.hpp | 2 +- storage/ndb/include/kernel/signaldata/ManagementServer.hpp | 2 +- storage/ndb/include/kernel/signaldata/MasterGCP.hpp | 2 +- storage/ndb/include/kernel/signaldata/MasterLCP.hpp | 2 +- storage/ndb/include/kernel/signaldata/NFCompleteRep.hpp | 2 +- storage/ndb/include/kernel/signaldata/NdbSttor.hpp | 2 +- storage/ndb/include/kernel/signaldata/NdbfsContinueB.hpp | 2 +- storage/ndb/include/kernel/signaldata/NextScan.hpp | 2 +- storage/ndb/include/kernel/signaldata/NodeFailRep.hpp | 2 +- storage/ndb/include/kernel/signaldata/NodeStateSignalData.hpp | 2 +- storage/ndb/include/kernel/signaldata/PackedSignal.hpp | 2 +- storage/ndb/include/kernel/signaldata/PgmanContinueB.hpp | 2 +- storage/ndb/include/kernel/signaldata/PrepDropTab.hpp | 2 +- storage/ndb/include/kernel/signaldata/PrepFailReqRef.hpp | 2 +- storage/ndb/include/kernel/signaldata/ReadConfig.hpp | 2 +- storage/ndb/include/kernel/signaldata/ReadNodesConf.hpp | 2 +- storage/ndb/include/kernel/signaldata/RelTabMem.hpp | 2 +- storage/ndb/include/kernel/signaldata/RepImpl.hpp | 2 +- storage/ndb/include/kernel/signaldata/RestoreContinueB.hpp | 2 +- storage/ndb/include/kernel/signaldata/RestoreImpl.hpp | 2 +- storage/ndb/include/kernel/signaldata/ResumeReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/RouteOrd.hpp | 2 +- storage/ndb/include/kernel/signaldata/ScanFrag.hpp | 2 +- storage/ndb/include/kernel/signaldata/ScanTab.hpp | 2 +- storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp | 2 +- storage/ndb/include/kernel/signaldata/SetVarReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/SignalData.hpp | 2 +- storage/ndb/include/kernel/signaldata/SignalDataPrint.hpp | 2 +- storage/ndb/include/kernel/signaldata/SignalDroppedRep.hpp | 2 +- storage/ndb/include/kernel/signaldata/SrFragidConf.hpp | 2 +- storage/ndb/include/kernel/signaldata/StartFragReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/StartInfo.hpp | 2 +- storage/ndb/include/kernel/signaldata/StartMe.hpp | 2 +- storage/ndb/include/kernel/signaldata/StartOrd.hpp | 2 +- storage/ndb/include/kernel/signaldata/StartPerm.hpp | 2 +- storage/ndb/include/kernel/signaldata/StartRec.hpp | 2 +- storage/ndb/include/kernel/signaldata/StartTo.hpp | 2 +- storage/ndb/include/kernel/signaldata/StopMe.hpp | 2 +- storage/ndb/include/kernel/signaldata/StopPerm.hpp | 2 +- storage/ndb/include/kernel/signaldata/StopReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/SumaImpl.hpp | 2 +- storage/ndb/include/kernel/signaldata/SystemError.hpp | 2 +- storage/ndb/include/kernel/signaldata/TamperOrd.hpp | 2 +- storage/ndb/include/kernel/signaldata/TcCommit.hpp | 2 +- storage/ndb/include/kernel/signaldata/TcContinueB.hpp | 2 +- storage/ndb/include/kernel/signaldata/TcHbRep.hpp | 2 +- storage/ndb/include/kernel/signaldata/TcIndx.hpp | 2 +- storage/ndb/include/kernel/signaldata/TcKeyConf.hpp | 2 +- storage/ndb/include/kernel/signaldata/TcKeyFailConf.hpp | 2 +- storage/ndb/include/kernel/signaldata/TcKeyRef.hpp | 2 +- storage/ndb/include/kernel/signaldata/TcKeyReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/TcRollbackRep.hpp | 2 +- storage/ndb/include/kernel/signaldata/TcSizeAltReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/TestOrd.hpp | 2 +- storage/ndb/include/kernel/signaldata/TransIdAI.hpp | 2 +- storage/ndb/include/kernel/signaldata/TrigAttrInfo.hpp | 2 +- storage/ndb/include/kernel/signaldata/TsmanContinueB.hpp | 2 +- storage/ndb/include/kernel/signaldata/TupCommit.hpp | 2 +- storage/ndb/include/kernel/signaldata/TupFrag.hpp | 2 +- storage/ndb/include/kernel/signaldata/TupKey.hpp | 2 +- storage/ndb/include/kernel/signaldata/TupSizeAltReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/TuxBound.hpp | 2 +- storage/ndb/include/kernel/signaldata/TuxContinueB.hpp | 2 +- storage/ndb/include/kernel/signaldata/TuxMaint.hpp | 2 +- storage/ndb/include/kernel/signaldata/TuxSizeAltReq.hpp | 2 +- storage/ndb/include/kernel/signaldata/UpdateTo.hpp | 2 +- storage/ndb/include/kernel/signaldata/UpgradeStartup.hpp | 2 +- storage/ndb/include/kernel/signaldata/UtilDelete.hpp | 2 +- storage/ndb/include/kernel/signaldata/UtilExecute.hpp | 2 +- storage/ndb/include/kernel/signaldata/UtilLock.hpp | 2 +- storage/ndb/include/kernel/signaldata/UtilPrepare.hpp | 2 +- storage/ndb/include/kernel/signaldata/UtilRelease.hpp | 2 +- storage/ndb/include/kernel/signaldata/UtilSequence.hpp | 2 +- storage/ndb/include/kernel/signaldata/WaitGCP.hpp | 2 +- storage/ndb/include/kernel/trigger_definitions.h | 2 +- storage/ndb/include/logger/ConsoleLogHandler.hpp | 2 +- storage/ndb/include/logger/FileLogHandler.hpp | 2 +- storage/ndb/include/logger/LogHandler.hpp | 2 +- storage/ndb/include/logger/Logger.hpp | 2 +- storage/ndb/include/logger/SysLogHandler.hpp | 2 +- storage/ndb/include/mgmapi/mgmapi.h | 2 +- storage/ndb/include/mgmapi/mgmapi_config_parameters.h | 2 +- storage/ndb/include/mgmapi/mgmapi_config_parameters_debug.h | 2 +- storage/ndb/include/mgmapi/mgmapi_debug.h | 2 +- storage/ndb/include/mgmapi/mgmapi_error.h | 2 +- storage/ndb/include/mgmapi/ndbd_exit_codes.h | 2 +- storage/ndb/include/mgmcommon/ConfigRetriever.hpp | 2 +- storage/ndb/include/mgmcommon/IPCConfig.hpp | 2 +- storage/ndb/include/mgmcommon/MgmtErrorReporter.hpp | 2 +- storage/ndb/include/ndb_constants.h | 2 +- storage/ndb/include/ndb_global.h.in | 2 +- storage/ndb/include/ndb_init.h | 2 +- storage/ndb/include/ndb_net.h | 2 +- storage/ndb/include/ndb_types.h.in | 2 +- storage/ndb/include/ndb_version.h.in | 2 +- storage/ndb/include/ndbapi/Ndb.hpp | 2 +- storage/ndb/include/ndbapi/NdbApi.hpp | 2 +- storage/ndb/include/ndbapi/NdbBlob.hpp | 2 +- storage/ndb/include/ndbapi/NdbDictionary.hpp | 2 +- storage/ndb/include/ndbapi/NdbError.hpp | 2 +- storage/ndb/include/ndbapi/NdbIndexOperation.hpp | 2 +- storage/ndb/include/ndbapi/NdbIndexScanOperation.hpp | 2 +- storage/ndb/include/ndbapi/NdbIndexStat.hpp | 2 +- storage/ndb/include/ndbapi/NdbPool.hpp | 2 +- storage/ndb/include/ndbapi/NdbRecAttr.hpp | 2 +- storage/ndb/include/ndbapi/NdbReceiver.hpp | 2 +- storage/ndb/include/ndbapi/NdbScanFilter.hpp | 2 +- storage/ndb/include/ndbapi/NdbScanOperation.hpp | 2 +- storage/ndb/include/ndbapi/NdbTransaction.hpp | 2 +- storage/ndb/include/ndbapi/ndb_cluster_connection.hpp | 2 +- storage/ndb/include/ndbapi/ndb_opt_defaults.h | 2 +- storage/ndb/include/ndbapi/ndbapi_limits.h | 2 +- storage/ndb/include/ndbapi/ndberror.h | 2 +- storage/ndb/include/newtonapi/dba.h | 2 +- storage/ndb/include/newtonapi/defs/pcn_types.h | 2 +- storage/ndb/include/portlib/NdbCondition.h | 2 +- storage/ndb/include/portlib/NdbConfig.h | 2 +- storage/ndb/include/portlib/NdbDaemon.h | 2 +- storage/ndb/include/portlib/NdbEnv.h | 2 +- storage/ndb/include/portlib/NdbHost.h | 2 +- storage/ndb/include/portlib/NdbMain.h | 2 +- storage/ndb/include/portlib/NdbMem.h | 2 +- storage/ndb/include/portlib/NdbMutex.h | 2 +- storage/ndb/include/portlib/NdbSleep.h | 2 +- storage/ndb/include/portlib/NdbTCP.h | 2 +- storage/ndb/include/portlib/NdbThread.h | 2 +- storage/ndb/include/portlib/NdbTick.h | 2 +- storage/ndb/include/portlib/PortDefs.h | 2 +- storage/ndb/include/portlib/prefetch.h | 2 +- storage/ndb/include/transporter/TransporterCallback.hpp | 2 +- storage/ndb/include/transporter/TransporterDefinitions.hpp | 2 +- storage/ndb/include/transporter/TransporterRegistry.hpp | 2 +- storage/ndb/include/util/BaseString.hpp | 2 +- storage/ndb/include/util/Bitmask.hpp | 2 +- storage/ndb/include/util/File.hpp | 2 +- storage/ndb/include/util/InputStream.hpp | 2 +- storage/ndb/include/util/NdbAutoPtr.hpp | 2 +- storage/ndb/include/util/NdbOut.hpp | 2 +- storage/ndb/include/util/NdbSqlUtil.hpp | 2 +- storage/ndb/include/util/OutputStream.hpp | 2 +- storage/ndb/include/util/Parser.hpp | 2 +- storage/ndb/include/util/Properties.hpp | 2 +- storage/ndb/include/util/SimpleProperties.hpp | 2 +- storage/ndb/include/util/SocketAuthenticator.hpp | 2 +- storage/ndb/include/util/SocketClient.hpp | 2 +- storage/ndb/include/util/SocketServer.hpp | 2 +- storage/ndb/include/util/UtilBuffer.hpp | 2 +- storage/ndb/include/util/Vector.hpp | 2 +- storage/ndb/include/util/basestring_vsnprintf.h | 2 +- storage/ndb/include/util/md5_hash.hpp | 2 +- storage/ndb/include/util/ndb_opts.h | 2 +- storage/ndb/include/util/ndb_rand.h | 2 +- storage/ndb/include/util/random.h | 2 +- storage/ndb/include/util/socket_io.h | 2 +- storage/ndb/include/util/uucode.h | 2 +- storage/ndb/include/util/version.h | 2 +- storage/ndb/ndbapi-examples/mgmapi_logevent/main.cpp | 2 +- storage/ndb/ndbapi-examples/mgmapi_logevent2/main.cpp | 2 +- storage/ndb/ndbapi-examples/ndbapi_async/ndbapi_async.cpp | 2 +- storage/ndb/ndbapi-examples/ndbapi_async1/ndbapi_async1.cpp | 2 +- storage/ndb/ndbapi-examples/ndbapi_event/ndbapi_event.cpp | 2 +- storage/ndb/ndbapi-examples/ndbapi_retries/ndbapi_retries.cpp | 2 +- storage/ndb/ndbapi-examples/ndbapi_scan/ndbapi_scan.cpp | 2 +- storage/ndb/ndbapi-examples/ndbapi_simple/ndbapi_simple.cpp | 2 +- storage/ndb/ndbapi-examples/ndbapi_simple_dual/main.cpp | 2 +- storage/ndb/ndbapi-examples/ndbapi_simple_index/main.cpp | 2 +- storage/ndb/src/Makefile.am | 2 +- storage/ndb/src/common/Makefile.am | 2 +- storage/ndb/src/common/debugger/BlockNames.cpp | 2 +- storage/ndb/src/common/debugger/DebuggerNames.cpp | 2 +- storage/ndb/src/common/debugger/EventLogger.cpp | 2 +- storage/ndb/src/common/debugger/GrepError.cpp | 2 +- storage/ndb/src/common/debugger/Makefile.am | 2 +- storage/ndb/src/common/debugger/SignalLoggerManager.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/AccLock.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/AlterIndx.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/AlterTab.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/AlterTable.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/AlterTrig.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/BackupImpl.cpp | 2 +- .../ndb/src/common/debugger/signaldata/BackupSignalData.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/CloseComReqConf.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/CntrStart.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/ContinueB.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/CopyGCI.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/CreateEvnt.cpp | 2 +- .../ndb/src/common/debugger/signaldata/CreateFragmentation.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/CreateIndx.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/CreateTrig.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/DihContinueB.cpp | 2 +- .../ndb/src/common/debugger/signaldata/DihSwitchReplicaReq.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/DisconnectRep.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/DropIndx.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/DropTab.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/DropTrig.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/FailRep.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/FireTrigOrd.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/FsAppendReq.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/FsCloseReq.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/FsConf.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/FsOpenReq.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/FsReadWriteReq.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/FsRef.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/GCPSave.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/IndxAttrInfo.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/IndxKeyInfo.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/LCP.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/LqhFrag.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/LqhKey.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/LqhTrans.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/Makefile.am | 2 +- storage/ndb/src/common/debugger/signaldata/MasterLCP.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/NFCompleteRep.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/NdbSttor.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/NdbfsContinueB.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/PackedSignal.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/PrepDropTab.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/PrepFailReqRef.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/ReadNodesConf.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/ScanFrag.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/ScanTab.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/SignalDataPrint.cpp | 2 +- .../ndb/src/common/debugger/signaldata/SignalDroppedRep.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/SignalNames.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/StartRec.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/SumaImpl.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/SystemError.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/TcIndx.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/TcKeyConf.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/TcKeyRef.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/TcKeyReq.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/TcRollbackRep.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/TrigAttrInfo.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/TupCommit.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/TupKey.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/TuxMaint.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/UtilDelete.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/UtilExecute.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/UtilLock.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/UtilPrepare.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/UtilSequence.cpp | 2 +- storage/ndb/src/common/debugger/signaldata/print.awk | 2 +- storage/ndb/src/common/logger/ConsoleLogHandler.cpp | 2 +- storage/ndb/src/common/logger/FileLogHandler.cpp | 2 +- storage/ndb/src/common/logger/LogHandler.cpp | 2 +- storage/ndb/src/common/logger/LogHandlerList.cpp | 2 +- storage/ndb/src/common/logger/LogHandlerList.hpp | 2 +- storage/ndb/src/common/logger/Logger.cpp | 2 +- storage/ndb/src/common/logger/Makefile.am | 2 +- storage/ndb/src/common/logger/SysLogHandler.cpp | 2 +- .../ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp | 2 +- .../ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp | 2 +- storage/ndb/src/common/logger/loggertest/LoggerUnitTest.cpp | 2 +- storage/ndb/src/common/logger/loggertest/LoggerUnitTest.hpp | 2 +- storage/ndb/src/common/mgmcommon/ConfigRetriever.cpp | 2 +- storage/ndb/src/common/mgmcommon/IPCConfig.cpp | 2 +- storage/ndb/src/common/mgmcommon/Makefile.am | 2 +- storage/ndb/src/common/mgmcommon/printConfig/printConfig.cpp | 2 +- storage/ndb/src/common/portlib/NdbCondition.c | 2 +- storage/ndb/src/common/portlib/NdbConfig.c | 2 +- storage/ndb/src/common/portlib/NdbDaemon.c | 2 +- storage/ndb/src/common/portlib/NdbEnv.c | 2 +- storage/ndb/src/common/portlib/NdbHost.c | 2 +- storage/ndb/src/common/portlib/NdbMem.c | 2 +- storage/ndb/src/common/portlib/NdbPortLibTest.cpp | 2 +- storage/ndb/src/common/portlib/NdbSleep.c | 2 +- storage/ndb/src/common/portlib/NdbTCP.cpp | 2 +- storage/ndb/src/common/portlib/NdbThread.c | 2 +- storage/ndb/src/common/portlib/NdbTick.c | 2 +- storage/ndb/src/common/portlib/memtest.c | 2 +- storage/ndb/src/common/portlib/mmstest.cpp | 2 +- storage/ndb/src/common/portlib/munmaptest.cpp | 2 +- storage/ndb/src/common/portlib/win32/NdbCondition.c | 2 +- storage/ndb/src/common/portlib/win32/NdbDaemon.c | 2 +- storage/ndb/src/common/portlib/win32/NdbEnv.c | 2 +- storage/ndb/src/common/portlib/win32/NdbHost.c | 2 +- storage/ndb/src/common/portlib/win32/NdbMem.c | 2 +- storage/ndb/src/common/portlib/win32/NdbMutex.c | 2 +- storage/ndb/src/common/portlib/win32/NdbSleep.c | 2 +- storage/ndb/src/common/portlib/win32/NdbTCP.c | 2 +- storage/ndb/src/common/portlib/win32/NdbThread.c | 2 +- storage/ndb/src/common/portlib/win32/NdbTick.c | 2 +- storage/ndb/src/common/transporter/Makefile.am | 2 +- storage/ndb/src/common/transporter/Packer.cpp | 2 +- storage/ndb/src/common/transporter/Packer.hpp | 2 +- storage/ndb/src/common/transporter/SCI_Transporter.cpp | 2 +- storage/ndb/src/common/transporter/SCI_Transporter.hpp | 2 +- storage/ndb/src/common/transporter/SHM_Buffer.hpp | 2 +- storage/ndb/src/common/transporter/SHM_Transporter.cpp | 2 +- storage/ndb/src/common/transporter/SHM_Transporter.hpp | 2 +- storage/ndb/src/common/transporter/SHM_Transporter.unix.cpp | 2 +- storage/ndb/src/common/transporter/SHM_Transporter.win32.cpp | 2 +- storage/ndb/src/common/transporter/SendBuffer.cpp | 2 +- storage/ndb/src/common/transporter/SendBuffer.hpp | 2 +- storage/ndb/src/common/transporter/TCP_Transporter.cpp | 2 +- storage/ndb/src/common/transporter/TCP_Transporter.hpp | 2 +- storage/ndb/src/common/transporter/Transporter.cpp | 2 +- storage/ndb/src/common/transporter/Transporter.hpp | 2 +- .../src/common/transporter/TransporterInternalDefinitions.hpp | 2 +- storage/ndb/src/common/transporter/TransporterRegistry.cpp | 2 +- .../src/common/transporter/basictest/basicTransporterTest.cpp | 2 +- storage/ndb/src/common/transporter/buddy.cpp | 2 +- storage/ndb/src/common/transporter/buddy.hpp | 2 +- storage/ndb/src/common/transporter/failoverSCI/failoverSCI.cpp | 2 +- .../src/common/transporter/perftest/perfTransporterTest.cpp | 2 +- .../ndb/src/common/transporter/priotest/prioSCI/prioSCI.cpp | 2 +- .../ndb/src/common/transporter/priotest/prioSHM/prioSHM.cpp | 2 +- .../ndb/src/common/transporter/priotest/prioTCP/prioTCP.cpp | 2 +- .../src/common/transporter/priotest/prioTransporterTest.cpp | 2 +- .../src/common/transporter/priotest/prioTransporterTest.hpp | 2 +- storage/ndb/src/common/util/BaseString.cpp | 2 +- storage/ndb/src/common/util/Bitmask.cpp | 2 +- storage/ndb/src/common/util/ConfigValues.cpp | 2 +- storage/ndb/src/common/util/File.cpp | 2 +- storage/ndb/src/common/util/InputStream.cpp | 2 +- storage/ndb/src/common/util/NdbOut.cpp | 2 +- storage/ndb/src/common/util/NdbSqlUtil.cpp | 2 +- storage/ndb/src/common/util/OutputStream.cpp | 2 +- storage/ndb/src/common/util/Parser.cpp | 2 +- storage/ndb/src/common/util/Properties.cpp | 2 +- storage/ndb/src/common/util/SimpleProperties.cpp | 2 +- storage/ndb/src/common/util/SocketAuthenticator.cpp | 2 +- storage/ndb/src/common/util/SocketClient.cpp | 2 +- storage/ndb/src/common/util/SocketServer.cpp | 2 +- storage/ndb/src/common/util/basestring_vsnprintf.c | 2 +- storage/ndb/src/common/util/filetest/FileUnitTest.cpp | 2 +- storage/ndb/src/common/util/filetest/FileUnitTest.hpp | 2 +- storage/ndb/src/common/util/md5_hash.cpp | 2 +- storage/ndb/src/common/util/ndb_init.c | 2 +- storage/ndb/src/common/util/ndb_rand.c | 2 +- storage/ndb/src/common/util/new.cpp | 2 +- storage/ndb/src/common/util/random.c | 2 +- storage/ndb/src/common/util/socket_io.cpp | 2 +- storage/ndb/src/common/util/strdup.c | 2 +- .../ndb/src/common/util/testConfigValues/testConfigValues.cpp | 2 +- storage/ndb/src/common/util/testProperties/testProperties.cpp | 2 +- storage/ndb/src/common/util/testSimpleProperties/sp_test.cpp | 2 +- storage/ndb/src/common/util/uucode.c | 2 +- storage/ndb/src/common/util/version.c | 2 +- storage/ndb/src/cw/Makefile.am | 2 +- storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp | 2 +- storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.h | 2 +- storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.rc | 2 +- storage/ndb/src/cw/cpcc-win32/C++/NdbControls.cpp | 2 +- storage/ndb/src/cw/cpcc-win32/C++/StdAfx.cpp | 2 +- storage/ndb/src/cw/cpcc-win32/C++/StdAfx.h | 2 +- storage/ndb/src/cw/cpcc-win32/C++/TreeView.cpp | 2 +- storage/ndb/src/cw/cpcc-win32/C++/TreeView.h | 2 +- storage/ndb/src/cw/cpcc-win32/C++/resource.h | 2 +- storage/ndb/src/cw/cpcc-win32/csharp/CPC_Form.cs | 2 +- storage/ndb/src/cw/cpcc-win32/csharp/Computer.cs | 2 +- storage/ndb/src/cw/cpcc-win32/csharp/ComputerAddDialog.cs | 2 +- storage/ndb/src/cw/cpcc-win32/csharp/ComputerRemoveDialog.cs | 2 +- storage/ndb/src/cw/cpcc-win32/csharp/Database.cs | 2 +- storage/ndb/src/cw/cpcc-win32/csharp/PanelWizard.cs | 2 +- storage/ndb/src/cw/cpcc-win32/csharp/Process.cs | 2 +- storage/ndb/src/cw/cpcc-win32/csharp/ProcessDefineDialog.cs | 2 +- storage/ndb/src/cw/cpcc-win32/csharp/fileaccess/FileMgmt.cs | 2 +- .../src/cw/cpcc-win32/csharp/simpleparser/SimpleCPCParser.cs | 2 +- storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/SocketComm.cs | 2 +- storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/myTcpClient.cs | 2 +- storage/ndb/src/cw/cpcc-win32/csharp/startDatabaseDlg.cs | 2 +- .../ndb/src/cw/cpcc-win32/csharp/telnetclient/telnetClient.cs | 2 +- storage/ndb/src/cw/cpcd/APIService.cpp | 2 +- storage/ndb/src/cw/cpcd/APIService.hpp | 2 +- storage/ndb/src/cw/cpcd/CPCD.cpp | 2 +- storage/ndb/src/cw/cpcd/CPCD.hpp | 2 +- storage/ndb/src/cw/cpcd/Makefile.am | 2 +- storage/ndb/src/cw/cpcd/Monitor.cpp | 2 +- storage/ndb/src/cw/cpcd/Process.cpp | 2 +- storage/ndb/src/cw/cpcd/common.cpp | 2 +- storage/ndb/src/cw/cpcd/common.hpp | 2 +- storage/ndb/src/cw/cpcd/main.cpp | 2 +- storage/ndb/src/cw/test/socketclient/socketClientTest.cpp | 2 +- storage/ndb/src/cw/util/ClientInterface.cpp | 2 +- storage/ndb/src/cw/util/ClientInterface.hpp | 2 +- storage/ndb/src/cw/util/SocketRegistry.cpp | 2 +- storage/ndb/src/cw/util/SocketRegistry.hpp | 2 +- storage/ndb/src/cw/util/SocketService.cpp | 2 +- storage/ndb/src/cw/util/SocketService.hpp | 2 +- storage/ndb/src/kernel/SimBlockList.cpp | 2 +- storage/ndb/src/kernel/blocks/backup/Backup.cpp | 2 +- storage/ndb/src/kernel/blocks/backup/Backup.hpp | 2 +- storage/ndb/src/kernel/blocks/backup/BackupFormat.hpp | 2 +- storage/ndb/src/kernel/blocks/backup/BackupInit.cpp | 2 +- storage/ndb/src/kernel/blocks/backup/FsBuffer.hpp | 2 +- storage/ndb/src/kernel/blocks/backup/Makefile.am | 2 +- storage/ndb/src/kernel/blocks/backup/read.cpp | 2 +- storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp | 2 +- storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp | 2 +- storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp | 2 +- storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp | 2 +- storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp | 2 +- storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp | 2 +- storage/ndb/src/kernel/blocks/dbdict/Makefile.am | 2 +- storage/ndb/src/kernel/blocks/dbdict/Master_AddTable.sfl | 2 +- storage/ndb/src/kernel/blocks/dbdict/SchemaFile.hpp | 2 +- storage/ndb/src/kernel/blocks/dbdict/Slave_AddTable.sfl | 2 +- storage/ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp | 2 +- storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp | 2 +- storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp | 2 +- storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp | 2 +- storage/ndb/src/kernel/blocks/dbdih/Makefile.am | 2 +- storage/ndb/src/kernel/blocks/dbdih/Sysfile.hpp | 2 +- storage/ndb/src/kernel/blocks/dbdih/printSysfile.cpp | 2 +- .../ndb/src/kernel/blocks/dbdih/printSysfile/printSysfile.cpp | 2 +- storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp | 2 +- storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp | 2 +- storage/ndb/src/kernel/blocks/dblqh/Makefile.am | 2 +- storage/ndb/src/kernel/blocks/dblqh/redoLogReader/reader.cpp | 2 +- storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp | 2 +- storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp | 2 +- storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp | 2 +- storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/AttributeOffset.hpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupPagMan.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupTabDesMan.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/DbtupVarAlloc.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/Makefile.am | 2 +- storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.hpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/test_varpage.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/tuppage.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtup/tuppage.hpp | 2 +- storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp | 2 +- storage/ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtux/DbtuxSearch.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtux/DbtuxStat.cpp | 2 +- storage/ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp | 2 +- storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp | 2 +- storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp | 2 +- storage/ndb/src/kernel/blocks/diskpage.cpp | 2 +- storage/ndb/src/kernel/blocks/diskpage.hpp | 2 +- storage/ndb/src/kernel/blocks/lgman.hpp | 2 +- storage/ndb/src/kernel/blocks/mutexes.hpp | 2 +- storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp | 2 +- storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp | 2 +- storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp | 2 +- storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrSysTable.cpp | 2 +- storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp | 2 +- .../src/kernel/blocks/ndbfs/AsyncFileTest/AsyncFileTest.cpp | 2 +- storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.cpp | 2 +- storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.hpp | 2 +- storage/ndb/src/kernel/blocks/ndbfs/Filename.cpp | 2 +- storage/ndb/src/kernel/blocks/ndbfs/Filename.hpp | 2 +- storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.cpp | 2 +- storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp | 2 +- .../blocks/ndbfs/MemoryChannelTest/MemoryChannelTest.cpp | 2 +- storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp | 2 +- storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp | 2 +- storage/ndb/src/kernel/blocks/ndbfs/OpenFiles.hpp | 2 +- storage/ndb/src/kernel/blocks/ndbfs/Pool.hpp | 2 +- storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp | 2 +- storage/ndb/src/kernel/blocks/pgman.cpp | 2 +- storage/ndb/src/kernel/blocks/pgman.hpp | 2 +- storage/ndb/src/kernel/blocks/print_file.cpp | 2 +- storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp | 2 +- storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp | 2 +- storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp | 2 +- storage/ndb/src/kernel/blocks/qmgr/timer.hpp | 2 +- storage/ndb/src/kernel/blocks/record_types.hpp | 2 +- storage/ndb/src/kernel/blocks/restore.cpp | 2 +- storage/ndb/src/kernel/blocks/restore.hpp | 2 +- storage/ndb/src/kernel/blocks/suma/Suma.hpp | 2 +- storage/ndb/src/kernel/blocks/suma/SumaInit.cpp | 2 +- storage/ndb/src/kernel/blocks/trix/Trix.cpp | 2 +- storage/ndb/src/kernel/blocks/trix/Trix.hpp | 2 +- storage/ndb/src/kernel/blocks/tsman.cpp | 2 +- storage/ndb/src/kernel/blocks/tsman.hpp | 2 +- storage/ndb/src/kernel/error/ErrorHandlingMacros.hpp | 2 +- storage/ndb/src/kernel/error/ErrorReporter.cpp | 2 +- storage/ndb/src/kernel/error/ErrorReporter.hpp | 2 +- storage/ndb/src/kernel/error/Makefile.am | 2 +- storage/ndb/src/kernel/error/TimeModule.cpp | 2 +- storage/ndb/src/kernel/error/TimeModule.hpp | 2 +- storage/ndb/src/kernel/error/ndbd_exit_codes.c | 2 +- storage/ndb/src/kernel/main.cpp | 2 +- storage/ndb/src/kernel/vm/Array.hpp | 2 +- storage/ndb/src/kernel/vm/ArrayPool.hpp | 2 +- storage/ndb/src/kernel/vm/CArray.hpp | 2 +- storage/ndb/src/kernel/vm/Callback.hpp | 2 +- storage/ndb/src/kernel/vm/ClusterConfiguration.cpp | 2 +- storage/ndb/src/kernel/vm/ClusterConfiguration.hpp | 2 +- storage/ndb/src/kernel/vm/Configuration.cpp | 2 +- storage/ndb/src/kernel/vm/Configuration.hpp | 2 +- storage/ndb/src/kernel/vm/DLCFifoList.hpp | 2 +- storage/ndb/src/kernel/vm/DLCHashTable.hpp | 2 +- storage/ndb/src/kernel/vm/DLFifoList.hpp | 2 +- storage/ndb/src/kernel/vm/DLHashTable.hpp | 2 +- storage/ndb/src/kernel/vm/DLHashTable2.hpp | 2 +- storage/ndb/src/kernel/vm/DLList.hpp | 2 +- storage/ndb/src/kernel/vm/DataBuffer.hpp | 2 +- storage/ndb/src/kernel/vm/DynArr256.cpp | 2 +- storage/ndb/src/kernel/vm/DynArr256.hpp | 2 +- storage/ndb/src/kernel/vm/Emulator.cpp | 2 +- storage/ndb/src/kernel/vm/Emulator.hpp | 2 +- storage/ndb/src/kernel/vm/FastScheduler.cpp | 2 +- storage/ndb/src/kernel/vm/FastScheduler.hpp | 2 +- storage/ndb/src/kernel/vm/GlobalData.hpp | 2 +- storage/ndb/src/kernel/vm/KeyDescriptor.hpp | 2 +- storage/ndb/src/kernel/vm/KeyTable.hpp | 2 +- storage/ndb/src/kernel/vm/KeyTable2.hpp | 2 +- storage/ndb/src/kernel/vm/KeyTable2Ref.hpp | 2 +- storage/ndb/src/kernel/vm/LinearPool.hpp | 2 +- storage/ndb/src/kernel/vm/LongSignal.hpp | 2 +- storage/ndb/src/kernel/vm/Makefile.am | 2 +- storage/ndb/src/kernel/vm/Mutex.cpp | 2 +- storage/ndb/src/kernel/vm/Mutex.hpp | 2 +- storage/ndb/src/kernel/vm/NdbdSuperPool.cpp | 2 +- storage/ndb/src/kernel/vm/NdbdSuperPool.hpp | 2 +- storage/ndb/src/kernel/vm/Pool.cpp | 2 +- storage/ndb/src/kernel/vm/Pool.hpp | 2 +- storage/ndb/src/kernel/vm/Prio.hpp | 2 +- storage/ndb/src/kernel/vm/RWPool.cpp | 2 +- storage/ndb/src/kernel/vm/RWPool.hpp | 2 +- storage/ndb/src/kernel/vm/RequestTracker.hpp | 2 +- storage/ndb/src/kernel/vm/Rope.cpp | 2 +- storage/ndb/src/kernel/vm/Rope.hpp | 2 +- storage/ndb/src/kernel/vm/SLFifoList.hpp | 2 +- storage/ndb/src/kernel/vm/SLList.hpp | 2 +- storage/ndb/src/kernel/vm/SafeCounter.cpp | 2 +- storage/ndb/src/kernel/vm/SafeCounter.hpp | 2 +- storage/ndb/src/kernel/vm/SectionReader.cpp | 2 +- storage/ndb/src/kernel/vm/SectionReader.hpp | 2 +- storage/ndb/src/kernel/vm/SignalCounter.hpp | 2 +- storage/ndb/src/kernel/vm/SimBlockList.hpp | 2 +- storage/ndb/src/kernel/vm/SimplePropertiesSection.cpp | 2 +- storage/ndb/src/kernel/vm/SimulatedBlock.cpp | 2 +- storage/ndb/src/kernel/vm/SimulatedBlock.hpp | 2 +- storage/ndb/src/kernel/vm/SuperPool.cpp | 2 +- storage/ndb/src/kernel/vm/SuperPool.hpp | 2 +- storage/ndb/src/kernel/vm/ThreadConfig.cpp | 2 +- storage/ndb/src/kernel/vm/ThreadConfig.hpp | 2 +- storage/ndb/src/kernel/vm/TimeQueue.cpp | 2 +- storage/ndb/src/kernel/vm/TimeQueue.hpp | 2 +- storage/ndb/src/kernel/vm/TransporterCallback.cpp | 2 +- storage/ndb/src/kernel/vm/VMSignal.cpp | 2 +- storage/ndb/src/kernel/vm/VMSignal.hpp | 2 +- storage/ndb/src/kernel/vm/WOPool.cpp | 2 +- storage/ndb/src/kernel/vm/WOPool.hpp | 2 +- storage/ndb/src/kernel/vm/WaitQueue.hpp | 2 +- storage/ndb/src/kernel/vm/WatchDog.cpp | 2 +- storage/ndb/src/kernel/vm/WatchDog.hpp | 2 +- storage/ndb/src/kernel/vm/al_test/arrayListTest.cpp | 2 +- storage/ndb/src/kernel/vm/al_test/arrayPoolTest.cpp | 2 +- storage/ndb/src/kernel/vm/al_test/main.cpp | 2 +- storage/ndb/src/kernel/vm/bench_pool.cpp | 2 +- storage/ndb/src/kernel/vm/ndbd_malloc.cpp | 2 +- storage/ndb/src/kernel/vm/ndbd_malloc.hpp | 2 +- storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp | 2 +- storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp | 2 +- storage/ndb/src/kernel/vm/pc.hpp | 2 +- storage/ndb/src/kernel/vm/testCopy/rr.cpp | 2 +- storage/ndb/src/kernel/vm/testCopy/testCopy.cpp | 2 +- storage/ndb/src/kernel/vm/testDataBuffer/testDataBuffer.cpp | 2 +- storage/ndb/src/kernel/vm/testLongSig/testLongSig.cpp | 2 +- storage/ndb/src/kernel/vm/testSimplePropertiesSection/test.cpp | 2 +- storage/ndb/src/kernel/vm/testSuperPool.cpp | 2 +- storage/ndb/src/mgmapi/LocalConfig.cpp | 2 +- storage/ndb/src/mgmapi/LocalConfig.hpp | 2 +- storage/ndb/src/mgmapi/Makefile.am | 2 +- storage/ndb/src/mgmapi/mgmapi.cpp | 2 +- storage/ndb/src/mgmapi/mgmapi_configuration.cpp | 2 +- storage/ndb/src/mgmapi/mgmapi_configuration.hpp | 2 +- storage/ndb/src/mgmapi/mgmapi_internal.h | 2 +- storage/ndb/src/mgmapi/ndb_logevent.cpp | 2 +- storage/ndb/src/mgmapi/ndb_logevent.hpp | 2 +- storage/ndb/src/mgmapi/test/keso.c | 2 +- storage/ndb/src/mgmapi/test/mgmSrvApi.cpp | 2 +- storage/ndb/src/mgmclient/CommandInterpreter.cpp | 2 +- storage/ndb/src/mgmclient/Makefile.am | 2 +- storage/ndb/src/mgmclient/main.cpp | 2 +- storage/ndb/src/mgmclient/ndb_mgmclient.h | 2 +- storage/ndb/src/mgmclient/ndb_mgmclient.hpp | 2 +- storage/ndb/src/mgmclient/test_cpcd/test_cpcd.cpp | 2 +- storage/ndb/src/mgmsrv/Config.cpp | 2 +- storage/ndb/src/mgmsrv/Config.hpp | 2 +- storage/ndb/src/mgmsrv/ConfigInfo.cpp | 2 +- storage/ndb/src/mgmsrv/ConfigInfo.hpp | 2 +- storage/ndb/src/mgmsrv/InitConfigFileParser.hpp | 2 +- storage/ndb/src/mgmsrv/MgmtSrvr.cpp | 2 +- storage/ndb/src/mgmsrv/MgmtSrvr.hpp | 2 +- storage/ndb/src/mgmsrv/MgmtSrvrConfig.cpp | 2 +- storage/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp | 2 +- storage/ndb/src/mgmsrv/Services.cpp | 2 +- storage/ndb/src/mgmsrv/Services.hpp | 2 +- storage/ndb/src/mgmsrv/SignalQueue.cpp | 2 +- storage/ndb/src/mgmsrv/SignalQueue.hpp | 2 +- storage/ndb/src/mgmsrv/convertStrToInt.cpp | 2 +- storage/ndb/src/mgmsrv/convertStrToInt.hpp | 2 +- storage/ndb/src/mgmsrv/main.cpp | 2 +- storage/ndb/src/mgmsrv/mkconfig/mkconfig.cpp | 2 +- storage/ndb/src/ndbapi/API.hpp | 2 +- storage/ndb/src/ndbapi/ClusterMgr.cpp | 2 +- storage/ndb/src/ndbapi/ClusterMgr.hpp | 2 +- storage/ndb/src/ndbapi/DictCache.hpp | 2 +- storage/ndb/src/ndbapi/Makefile.am | 2 +- storage/ndb/src/ndbapi/Ndb.cpp | 2 +- storage/ndb/src/ndbapi/NdbApiSignal.cpp | 2 +- storage/ndb/src/ndbapi/NdbApiSignal.hpp | 2 +- storage/ndb/src/ndbapi/NdbBlob.cpp | 2 +- storage/ndb/src/ndbapi/NdbBlobImpl.hpp | 2 +- storage/ndb/src/ndbapi/NdbDictionary.cpp | 2 +- storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp | 2 +- storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp | 2 +- storage/ndb/src/ndbapi/NdbErrorOut.cpp | 2 +- storage/ndb/src/ndbapi/NdbImpl.hpp | 2 +- storage/ndb/src/ndbapi/NdbIndexOperation.cpp | 2 +- storage/ndb/src/ndbapi/NdbIndexStat.cpp | 2 +- storage/ndb/src/ndbapi/NdbLinHash.hpp | 2 +- storage/ndb/src/ndbapi/NdbOperation.cpp | 2 +- storage/ndb/src/ndbapi/NdbOperationDefine.cpp | 2 +- storage/ndb/src/ndbapi/NdbOperationExec.cpp | 2 +- storage/ndb/src/ndbapi/NdbOperationInt.cpp | 2 +- storage/ndb/src/ndbapi/NdbOperationScan.cpp | 2 +- storage/ndb/src/ndbapi/NdbOperationSearch.cpp | 2 +- storage/ndb/src/ndbapi/NdbPool.cpp | 2 +- storage/ndb/src/ndbapi/NdbPoolImpl.cpp | 2 +- storage/ndb/src/ndbapi/NdbPoolImpl.hpp | 2 +- storage/ndb/src/ndbapi/NdbRecAttr.cpp | 2 +- storage/ndb/src/ndbapi/NdbReceiver.cpp | 2 +- storage/ndb/src/ndbapi/NdbScanFilter.cpp | 2 +- storage/ndb/src/ndbapi/NdbScanOperation.cpp | 2 +- storage/ndb/src/ndbapi/NdbTransaction.cpp | 2 +- storage/ndb/src/ndbapi/NdbTransactionScan.cpp | 2 +- storage/ndb/src/ndbapi/NdbUtil.cpp | 2 +- storage/ndb/src/ndbapi/NdbUtil.hpp | 2 +- storage/ndb/src/ndbapi/NdbWaiter.hpp | 2 +- storage/ndb/src/ndbapi/Ndberr.cpp | 2 +- storage/ndb/src/ndbapi/Ndbif.cpp | 2 +- storage/ndb/src/ndbapi/Ndbinit.cpp | 2 +- storage/ndb/src/ndbapi/Ndblist.cpp | 2 +- storage/ndb/src/ndbapi/ObjectMap.cpp | 2 +- storage/ndb/src/ndbapi/ObjectMap.hpp | 2 +- storage/ndb/src/ndbapi/SignalSender.cpp | 2 +- storage/ndb/src/ndbapi/SignalSender.hpp | 2 +- storage/ndb/src/ndbapi/TransporterFacade.cpp | 2 +- storage/ndb/src/ndbapi/TransporterFacade.hpp | 2 +- storage/ndb/src/ndbapi/ndb_cluster_connection.cpp | 2 +- storage/ndb/src/ndbapi/ndb_cluster_connection_impl.hpp | 2 +- storage/ndb/src/ndbapi/ndberror.c | 2 +- storage/ndb/src/ndbapi/signal-sender/SignalSender.cpp | 2 +- storage/ndb/src/ndbapi/signal-sender/SignalSender.hpp | 2 +- storage/ndb/test/Makefile.am | 2 +- storage/ndb/test/include/AtrtClient.hpp | 2 +- storage/ndb/test/include/CpcClient.hpp | 2 +- storage/ndb/test/include/DbUtil.hpp | 2 +- storage/ndb/test/include/HugoAsynchTransactions.hpp | 2 +- storage/ndb/test/include/HugoCalculator.hpp | 2 +- storage/ndb/test/include/HugoOperations.hpp | 2 +- storage/ndb/test/include/HugoTransactions.hpp | 2 +- storage/ndb/test/include/NDBT.hpp | 2 +- storage/ndb/test/include/NDBT_DataSet.hpp | 2 +- storage/ndb/test/include/NDBT_DataSetTransaction.hpp | 2 +- storage/ndb/test/include/NDBT_Error.hpp | 2 +- storage/ndb/test/include/NDBT_Output.hpp | 2 +- storage/ndb/test/include/NDBT_ResultRow.hpp | 2 +- storage/ndb/test/include/NDBT_ReturnCodes.h | 2 +- storage/ndb/test/include/NDBT_Stats.hpp | 2 +- storage/ndb/test/include/NDBT_Table.hpp | 2 +- storage/ndb/test/include/NDBT_Tables.hpp | 2 +- storage/ndb/test/include/NDBT_Test.hpp | 2 +- storage/ndb/test/include/NDBT_Thread.hpp | 2 +- storage/ndb/test/include/NdbBackup.hpp | 2 +- storage/ndb/test/include/NdbConfig.hpp | 2 +- storage/ndb/test/include/NdbGrep.hpp | 2 +- storage/ndb/test/include/NdbMixRestarter.hpp | 2 +- storage/ndb/test/include/NdbRestarter.hpp | 2 +- storage/ndb/test/include/NdbRestarts.hpp | 2 +- storage/ndb/test/include/NdbSchemaCon.hpp | 2 +- storage/ndb/test/include/NdbSchemaOp.hpp | 2 +- storage/ndb/test/include/NdbTest.hpp | 2 +- storage/ndb/test/include/NdbTimer.hpp | 2 +- storage/ndb/test/include/TestNdbEventOperation.hpp | 2 +- storage/ndb/test/include/UtilTransactions.hpp | 2 +- storage/ndb/test/include/getarg.h | 2 +- storage/ndb/test/ndbapi/InsertRecs.cpp | 2 +- storage/ndb/test/ndbapi/Makefile.am | 2 +- storage/ndb/test/ndbapi/ScanFilter.hpp | 2 +- storage/ndb/test/ndbapi/ScanFunctions.hpp | 2 +- storage/ndb/test/ndbapi/ScanInterpretTest.hpp | 2 +- storage/ndb/test/ndbapi/TraceNdbApi.cpp | 2 +- storage/ndb/test/ndbapi/VerifyNdbApi.cpp | 2 +- storage/ndb/test/ndbapi/acid.cpp | 2 +- storage/ndb/test/ndbapi/acid2.cpp | 2 +- storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp | 2 +- storage/ndb/test/ndbapi/adoInsertRecs.cpp | 2 +- storage/ndb/test/ndbapi/asyncGenerator.cpp | 2 +- storage/ndb/test/ndbapi/bank/Bank.cpp | 2 +- storage/ndb/test/ndbapi/bank/Bank.hpp | 2 +- storage/ndb/test/ndbapi/bank/BankLoad.cpp | 2 +- storage/ndb/test/ndbapi/bank/Makefile.am | 2 +- storage/ndb/test/ndbapi/bank/bankCreator.cpp | 2 +- storage/ndb/test/ndbapi/bank/bankMakeGL.cpp | 2 +- storage/ndb/test/ndbapi/bank/bankSumAccounts.cpp | 2 +- storage/ndb/test/ndbapi/bank/bankTimer.cpp | 2 +- storage/ndb/test/ndbapi/bank/bankTransactionMaker.cpp | 2 +- storage/ndb/test/ndbapi/bank/bankValidateAllGLs.cpp | 2 +- storage/ndb/test/ndbapi/bank/testBank.cpp | 2 +- storage/ndb/test/ndbapi/bench/asyncGenerator.cpp | 2 +- storage/ndb/test/ndbapi/bench/dbGenerator.h | 2 +- storage/ndb/test/ndbapi/bench/dbPopulate.cpp | 2 +- storage/ndb/test/ndbapi/bench/dbPopulate.h | 2 +- storage/ndb/test/ndbapi/bench/macros.h | 2 +- storage/ndb/test/ndbapi/bench/mainAsyncGenerator.cpp | 2 +- storage/ndb/test/ndbapi/bench/mainPopulate.cpp | 2 +- storage/ndb/test/ndbapi/bench/ndb_async1.cpp | 2 +- storage/ndb/test/ndbapi/bench/ndb_async2.cpp | 2 +- storage/ndb/test/ndbapi/bench/ndb_error.hpp | 2 +- storage/ndb/test/ndbapi/bench/ndb_schema.hpp | 2 +- storage/ndb/test/ndbapi/bench/ndb_user_transaction.cpp | 2 +- storage/ndb/test/ndbapi/bench/ndb_user_transaction2.cpp | 2 +- storage/ndb/test/ndbapi/bench/ndb_user_transaction3.cpp | 2 +- storage/ndb/test/ndbapi/bench/ndb_user_transaction4.cpp | 2 +- storage/ndb/test/ndbapi/bench/ndb_user_transaction5.cpp | 2 +- storage/ndb/test/ndbapi/bench/ndb_user_transaction6.cpp | 2 +- storage/ndb/test/ndbapi/bench/testData.h | 2 +- storage/ndb/test/ndbapi/bench/testDefinitions.h | 2 +- storage/ndb/test/ndbapi/bench/userInterface.cpp | 2 +- storage/ndb/test/ndbapi/bench/userInterface.h | 2 +- storage/ndb/test/ndbapi/benchronja.cpp | 2 +- storage/ndb/test/ndbapi/bulk_copy.cpp | 2 +- storage/ndb/test/ndbapi/cdrserver.cpp | 2 +- storage/ndb/test/ndbapi/celloDb.cpp | 2 +- storage/ndb/test/ndbapi/create_all_tabs.cpp | 2 +- storage/ndb/test/ndbapi/create_tab.cpp | 2 +- storage/ndb/test/ndbapi/drop_all_tabs.cpp | 2 +- storage/ndb/test/ndbapi/flexAsynch.cpp | 2 +- storage/ndb/test/ndbapi/flexBench.cpp | 2 +- storage/ndb/test/ndbapi/flexHammer.cpp | 2 +- storage/ndb/test/ndbapi/flexScan.cpp | 2 +- storage/ndb/test/ndbapi/flexTT.cpp | 2 +- storage/ndb/test/ndbapi/flexTimedAsynch.cpp | 2 +- storage/ndb/test/ndbapi/flex_bench_mysql.cpp | 2 +- storage/ndb/test/ndbapi/index.cpp | 2 +- storage/ndb/test/ndbapi/index2.cpp | 2 +- storage/ndb/test/ndbapi/initronja.cpp | 2 +- storage/ndb/test/ndbapi/interpreterInTup.cpp | 2 +- storage/ndb/test/ndbapi/mainAsyncGenerator.cpp | 2 +- storage/ndb/test/ndbapi/msa.cpp | 2 +- storage/ndb/test/ndbapi/ndb_async1.cpp | 2 +- storage/ndb/test/ndbapi/ndb_async2.cpp | 2 +- storage/ndb/test/ndbapi/ndb_user_populate.cpp | 2 +- storage/ndb/test/ndbapi/ndb_user_transaction.cpp | 2 +- storage/ndb/test/ndbapi/ndb_user_transaction2.cpp | 2 +- storage/ndb/test/ndbapi/ndb_user_transaction3.cpp | 2 +- storage/ndb/test/ndbapi/ndb_user_transaction4.cpp | 2 +- storage/ndb/test/ndbapi/ndb_user_transaction5.cpp | 2 +- storage/ndb/test/ndbapi/ndb_user_transaction6.cpp | 2 +- storage/ndb/test/ndbapi/restarter.cpp | 2 +- storage/ndb/test/ndbapi/restarter2.cpp | 2 +- storage/ndb/test/ndbapi/restarts.cpp | 2 +- storage/ndb/test/ndbapi/size.cpp | 2 +- storage/ndb/test/ndbapi/testBackup.cpp | 2 +- storage/ndb/test/ndbapi/testBasic.cpp | 2 +- storage/ndb/test/ndbapi/testBasicAsynch.cpp | 2 +- storage/ndb/test/ndbapi/testBlobs.cpp | 2 +- storage/ndb/test/ndbapi/testDataBuffers.cpp | 2 +- storage/ndb/test/ndbapi/testDeadlock.cpp | 2 +- storage/ndb/test/ndbapi/testDict.cpp | 2 +- storage/ndb/test/ndbapi/testGrepVerify.cpp | 2 +- storage/ndb/test/ndbapi/testIndex.cpp | 2 +- storage/ndb/test/ndbapi/testIndexStat.cpp | 2 +- storage/ndb/test/ndbapi/testInterpreter.cpp | 2 +- storage/ndb/test/ndbapi/testMgm.cpp | 2 +- storage/ndb/test/ndbapi/testNDBT.cpp | 2 +- storage/ndb/test/ndbapi/testNdbApi.cpp | 2 +- storage/ndb/test/ndbapi/testNodeRestart.cpp | 2 +- storage/ndb/test/ndbapi/testOIBasic.cpp | 2 +- storage/ndb/test/ndbapi/testOperations.cpp | 2 +- storage/ndb/test/ndbapi/testOrderedIndex.cpp | 2 +- storage/ndb/test/ndbapi/testPartitioning.cpp | 2 +- storage/ndb/test/ndbapi/testReadPerf.cpp | 2 +- storage/ndb/test/ndbapi/testRestartGci.cpp | 2 +- storage/ndb/test/ndbapi/testSRBank.cpp | 2 +- storage/ndb/test/ndbapi/testScan.cpp | 2 +- storage/ndb/test/ndbapi/testScanInterpreter.cpp | 2 +- storage/ndb/test/ndbapi/testScanPerf.cpp | 2 +- storage/ndb/test/ndbapi/testSystemRestart.cpp | 2 +- storage/ndb/test/ndbapi/testTimeout.cpp | 2 +- storage/ndb/test/ndbapi/testTransactions.cpp | 2 +- storage/ndb/test/ndbapi/test_event.cpp | 2 +- storage/ndb/test/ndbapi/test_event_merge.cpp | 2 +- storage/ndb/test/ndbapi/userInterface.cpp | 2 +- storage/ndb/test/ndbnet/test.run | 2 +- storage/ndb/test/ndbnet/testError.run | 2 +- storage/ndb/test/ndbnet/testMNF.run | 2 +- storage/ndb/test/ndbnet/testNR.run | 2 +- storage/ndb/test/ndbnet/testNR1.run | 2 +- storage/ndb/test/ndbnet/testNR4.run | 2 +- storage/ndb/test/ndbnet/testSRhang.run | 2 +- storage/ndb/test/ndbnet/testTR295.run | 2 +- storage/ndb/test/newtonapi/basic_test/basic/basic.cpp | 2 +- storage/ndb/test/newtonapi/basic_test/bulk_read/br_test.cpp | 2 +- storage/ndb/test/newtonapi/basic_test/common.cpp | 2 +- storage/ndb/test/newtonapi/basic_test/common.hpp | 2 +- .../test/newtonapi/basic_test/ptr_binding/ptr_binding_test.cpp | 2 +- storage/ndb/test/newtonapi/basic_test/too_basic.cpp | 2 +- storage/ndb/test/newtonapi/perf_test/perf.cpp | 2 +- storage/ndb/test/odbc/SQL99_test/SQL99_test.cpp | 2 +- storage/ndb/test/odbc/SQL99_test/SQL99_test.h | 2 +- storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE.cpp | 2 +- storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE_HDBC.cpp | 2 +- storage/ndb/test/odbc/client/NDBT_SQLConnect.cpp | 2 +- storage/ndb/test/odbc/client/NDBT_SQLPrepare.cpp | 2 +- storage/ndb/test/odbc/client/SQLAllocEnvTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLAllocHandleTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLAllocHandleTest_bf.cpp | 2 +- storage/ndb/test/odbc/client/SQLBindColTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLBindParameterTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLCancelTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLCloseCursorTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLColAttributeTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLColAttributeTest1.cpp | 2 +- storage/ndb/test/odbc/client/SQLColAttributeTest2.cpp | 2 +- storage/ndb/test/odbc/client/SQLColAttributeTest3.cpp | 2 +- storage/ndb/test/odbc/client/SQLConnectTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLCopyDescTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLDescribeColTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLDisconnectTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLDriverConnectTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLEndTranTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLErrorTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLExecDirectTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLExecuteTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLFetchScrollTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLFetchTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLFreeHandleTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLFreeStmtTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLGetConnectAttrTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLGetCursorNameTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLGetDataTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLGetDescFieldTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLGetDescRecTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLGetDiagFieldTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLGetDiagRecTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLGetEnvAttrTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLGetFunctionsTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLGetInfoTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLGetStmtAttrTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLGetTypeInfoTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLMoreResultsTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLNumResultColsTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLParamDataTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLPrepareTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLPutDataTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLRowCountTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLSetConnectAttrTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLSetCursorNameTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLSetDescFieldTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLSetDescRecTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLSetEnvAttrTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLSetStmtAttrTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLTablesTest.cpp | 2 +- storage/ndb/test/odbc/client/SQLTransactTest.cpp | 2 +- storage/ndb/test/odbc/client/common.hpp | 2 +- storage/ndb/test/odbc/client/main.cpp | 2 +- storage/ndb/test/odbc/driver/testOdbcDriver.cpp | 2 +- storage/ndb/test/odbc/test_compiler/test_compiler.cpp | 2 +- storage/ndb/test/run-test/atrt-analyze-result.sh | 2 +- storage/ndb/test/run-test/atrt-clear-result.sh | 2 +- storage/ndb/test/run-test/atrt-gather-result.sh | 2 +- storage/ndb/test/run-test/atrt-setup.sh | 2 +- storage/ndb/test/run-test/atrt-testBackup | 2 +- storage/ndb/test/run-test/atrt.hpp | 2 +- storage/ndb/test/run-test/daily-devel-tests.txt | 2 +- storage/ndb/test/run-test/main.cpp | 2 +- storage/ndb/test/run-test/make-index.sh | 2 +- storage/ndb/test/src/CpcClient.cpp | 2 +- storage/ndb/test/src/DbUtil.cpp | 2 +- storage/ndb/test/src/HugoAsynchTransactions.cpp | 2 +- storage/ndb/test/src/HugoCalculator.cpp | 2 +- storage/ndb/test/src/HugoOperations.cpp | 2 +- storage/ndb/test/src/HugoTransactions.cpp | 2 +- storage/ndb/test/src/Makefile.am | 2 +- storage/ndb/test/src/NDBT_Error.cpp | 2 +- storage/ndb/test/src/NDBT_Output.cpp | 2 +- storage/ndb/test/src/NDBT_ResultRow.cpp | 2 +- storage/ndb/test/src/NDBT_ReturnCodes.cpp | 2 +- storage/ndb/test/src/NDBT_Table.cpp | 2 +- storage/ndb/test/src/NDBT_Tables.cpp | 2 +- storage/ndb/test/src/NDBT_Test.cpp | 2 +- storage/ndb/test/src/NDBT_Thread.cpp | 2 +- storage/ndb/test/src/NdbBackup.cpp | 2 +- storage/ndb/test/src/NdbConfig.cpp | 2 +- storage/ndb/test/src/NdbGrep.cpp | 2 +- storage/ndb/test/src/NdbMixRestarter.cpp | 2 +- storage/ndb/test/src/NdbRestarter.cpp | 2 +- storage/ndb/test/src/NdbRestarts.cpp | 2 +- storage/ndb/test/src/NdbSchemaCon.cpp | 2 +- storage/ndb/test/src/NdbSchemaOp.cpp | 2 +- storage/ndb/test/src/UtilTransactions.cpp | 2 +- storage/ndb/test/tools/Makefile.am | 2 +- storage/ndb/test/tools/copy_tab.cpp | 2 +- storage/ndb/test/tools/cpcc.cpp | 2 +- storage/ndb/test/tools/create_index.cpp | 2 +- storage/ndb/test/tools/hugoCalculator.cpp | 2 +- storage/ndb/test/tools/hugoFill.cpp | 2 +- storage/ndb/test/tools/hugoLoad.cpp | 2 +- storage/ndb/test/tools/hugoLockRecords.cpp | 2 +- storage/ndb/test/tools/hugoPkDelete.cpp | 2 +- storage/ndb/test/tools/hugoPkRead.cpp | 2 +- storage/ndb/test/tools/hugoPkReadRecord.cpp | 2 +- storage/ndb/test/tools/hugoPkUpdate.cpp | 2 +- storage/ndb/test/tools/hugoScanRead.cpp | 2 +- storage/ndb/test/tools/hugoScanUpdate.cpp | 2 +- storage/ndb/test/tools/listen.cpp | 2 +- storage/ndb/test/tools/rep_latency.cpp | 2 +- storage/ndb/test/tools/restart.cpp | 2 +- storage/ndb/test/tools/transproxy.cpp | 2 +- storage/ndb/test/tools/verify_index.cpp | 2 +- storage/ndb/tools/Makefile.am | 2 +- storage/ndb/tools/clean-links.sh | 2 +- storage/ndb/tools/delete_all.cpp | 2 +- storage/ndb/tools/desc.cpp | 2 +- storage/ndb/tools/drop_index.cpp | 2 +- storage/ndb/tools/drop_tab.cpp | 2 +- storage/ndb/tools/listTables.cpp | 2 +- storage/ndb/tools/make-errors.pl | 2 +- storage/ndb/tools/make-links.sh | 2 +- storage/ndb/tools/ndb_config.cpp | 2 +- storage/ndb/tools/ndb_error_reporter | 2 +- storage/ndb/tools/ndb_test_platform.cpp | 2 +- storage/ndb/tools/ndbsql.cpp | 2 +- storage/ndb/tools/restore/Restore.cpp | 2 +- storage/ndb/tools/restore/Restore.hpp | 2 +- storage/ndb/tools/restore/consumer.cpp | 2 +- storage/ndb/tools/restore/consumer.hpp | 2 +- storage/ndb/tools/restore/consumer_printer.cpp | 2 +- storage/ndb/tools/restore/consumer_printer.hpp | 2 +- storage/ndb/tools/restore/consumer_restore.hpp | 2 +- storage/ndb/tools/restore/ndb_nodegroup_map.h | 2 +- storage/ndb/tools/restore/restore_main.cpp | 2 +- storage/ndb/tools/rgrep | 2 +- storage/ndb/tools/select_all.cpp | 2 +- storage/ndb/tools/select_count.cpp | 2 +- storage/ndb/tools/waiter.cpp | 2 +- strings/bchange.c | 2 +- strings/bfill.c | 2 +- strings/bmove.c | 2 +- strings/bmove512.c | 2 +- strings/bmove_upp-sparc.s | 2 +- strings/bmove_upp.c | 2 +- strings/ctype-mb.c | 2 +- strings/ctype-simple.c | 3 +-- strings/ctype-uca.c | 3 +-- strings/ctype-utf8.c | 2 +- strings/ctype.c | 3 +-- strings/do_ctype.c | 2 +- strings/int2str.c | 2 +- strings/is_prefix.c | 2 +- strings/llstr.c | 2 +- strings/longlong2str-x86.s | 2 +- strings/longlong2str.c | 2 +- strings/longlong2str_asm.c | 2 +- strings/macros.asm | 2 +- strings/my_strtoll10-x86.s | 2 +- strings/my_strtoll10.c | 2 +- strings/ptr_cmp.asm | 2 +- strings/r_strinstr.c | 2 +- strings/str2int.c | 2 +- strings/str_alloc.c | 2 +- strings/strappend-sparc.s | 2 +- strings/strappend.c | 2 +- strings/strcend.c | 2 +- strings/strcont.c | 2 +- strings/strend-sparc.s | 2 +- strings/strend.c | 2 +- strings/strfill.c | 2 +- strings/strings-not-used.h | 2 +- strings/strings-x86.s | 2 +- strings/strings.asm | 2 +- strings/strinstr-sparc.s | 2 +- strings/strinstr.c | 2 +- strings/strmake-sparc.s | 2 +- strings/strmake.c | 2 +- strings/strmov-sparc.s | 2 +- strings/strmov.c | 2 +- strings/strnlen.c | 2 +- strings/strnmov-sparc.s | 2 +- strings/strnmov.c | 2 +- strings/strstr-sparc.s | 2 +- strings/strstr.c | 2 +- strings/strto.c | 2 +- strings/strtol.c | 2 +- strings/strtoll.c | 2 +- strings/strtoul.c | 2 +- strings/strtoull.c | 2 +- strings/strxmov-sparc.s | 2 +- strings/strxmov.asm | 2 +- strings/strxmov.c | 2 +- strings/strxnmov.c | 2 +- strings/t_ctype.h | 2 +- strings/udiv.c | 2 +- support-files/MacOSX/Makefile.am | 2 +- support-files/MySQL-shared-compat.spec.sh | 2 +- support-files/RHEL4-SElinux/Makefile.am | 2 +- support-files/mysql.spec.sh | 2 +- tests/CMakeLists.txt | 2 +- tests/Makefile.am | 3 +-- tests/connect_test.c | 2 +- tests/fork_big.pl | 2 +- tests/fork_big2.pl | 2 +- tests/insert_test.c | 2 +- tests/list_test.c | 2 +- tests/select_test.c | 2 +- tests/showdb_test.c | 2 +- tests/ssl_test.c | 2 +- tests/thread_test.c | 2 +- unittest/mytap/Makefile.am | 2 +- unittest/mytap/t/Makefile.am | 2 +- vio/CMakeLists.txt | 2 +- vio/test-ssl.c | 2 +- vio/test-sslclient.c | 2 +- vio/test-sslserver.c | 2 +- vio/viosocket.c | 2 +- vio/viossl.c | 2 +- vio/viosslfactories.c | 3 +-- vio/viotest-ssl.c | 2 +- win/build-nmake-x64.bat | 2 +- win/build-nmake.bat | 2 +- win/build-vs71.bat | 2 +- win/build-vs8.bat | 2 +- zlib/CMakeLists.txt | 2 +- zlib/Makefile.am | 2 +- 1668 files changed, 1668 insertions(+), 1697 deletions(-) diff --git a/BUILD/Makefile.am b/BUILD/Makefile.am index 72b586a72de..7b945af0f65 100644 --- a/BUILD/Makefile.am +++ b/BUILD/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2002, 2004-2005 MySQL AB +# Copyright (c) 2002, 2004-2008 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/BUILD/autorun.sh b/BUILD/autorun.sh index ef298b54eec..a97cec79c15 100755 --- a/BUILD/autorun.sh +++ b/BUILD/autorun.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2005 MySQL AB +# Copyright (c) 2005-2007 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/BUILD/compile-alpha-ccc b/BUILD/compile-alpha-ccc index 01bfaa9af68..02cf82db869 100755 --- a/BUILD/compile-alpha-ccc +++ b/BUILD/compile-alpha-ccc @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2000, 2005 MySQL AB +# Copyright (c) 2000, 2005, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-alpha-cxx b/BUILD/compile-alpha-cxx index ec35be1ba68..3e9873f183a 100755 --- a/BUILD/compile-alpha-cxx +++ b/BUILD/compile-alpha-cxx @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2000, 2005 MySQL AB +# Copyright (c) 2000, 2001, 2003, 2005-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-alpha-debug b/BUILD/compile-alpha-debug index 51895d3c230..3ff06c45267 100755 --- a/BUILD/compile-alpha-debug +++ b/BUILD/compile-alpha-debug @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2000, 2005 MySQL AB +# Copyright (c) 2000, 2001, 2005-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-amd64-debug-max b/BUILD/compile-amd64-debug-max index 273942df5f8..aa429229c02 100755 --- a/BUILD/compile-amd64-debug-max +++ b/BUILD/compile-amd64-debug-max @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2005 MySQL AB +# Copyright (c) 2005, 2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-amd64-max b/BUILD/compile-amd64-max index c14f0d7104c..3fc970946db 100755 --- a/BUILD/compile-amd64-max +++ b/BUILD/compile-amd64-max @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2005 MySQL AB +# Copyright (c) 2005, 2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-darwin-mwcc b/BUILD/compile-darwin-mwcc index 88747de77af..7d443cad4a1 100755 --- a/BUILD/compile-darwin-mwcc +++ b/BUILD/compile-darwin-mwcc @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2005 MySQL AB +# Copyright (c) 2005, 2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-hpux11-parisc2-aCC b/BUILD/compile-hpux11-parisc2-aCC index 5d0df465bc9..492b5ea326e 100755 --- a/BUILD/compile-hpux11-parisc2-aCC +++ b/BUILD/compile-hpux11-parisc2-aCC @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2004, 2005 MySQL AB +# Copyright (c) 2004, 2005, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-ia64-debug-max b/BUILD/compile-ia64-debug-max index 6686ae983c4..2c1fb170a43 100755 --- a/BUILD/compile-ia64-debug-max +++ b/BUILD/compile-ia64-debug-max @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2001, 2005 MySQL AB +# Copyright (c) 2001, 2005-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-irix-mips64-mipspro b/BUILD/compile-irix-mips64-mipspro index a8433c715ab..e72078ecb84 100755 --- a/BUILD/compile-irix-mips64-mipspro +++ b/BUILD/compile-irix-mips64-mipspro @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2004, 2005 MySQL AB +# Copyright (c) 2004, 2005, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-pentium b/BUILD/compile-pentium index 0b8caa763ce..22d0ba97a74 100755 --- a/BUILD/compile-pentium +++ b/BUILD/compile-pentium @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2000, 2002 MySQL AB +# Copyright (c) 2000-2002, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-pentium-debug-max-no-embedded b/BUILD/compile-pentium-debug-max-no-embedded index 55aede7536f..346ed88c94b 100755 --- a/BUILD/compile-pentium-debug-max-no-embedded +++ b/BUILD/compile-pentium-debug-max-no-embedded @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2004, 2005 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-pentium-debug-openssl b/BUILD/compile-pentium-debug-openssl index 505cfe9b234..4d589a7fc4c 100755 --- a/BUILD/compile-pentium-debug-openssl +++ b/BUILD/compile-pentium-debug-openssl @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2001, 2003 MySQL AB +# Copyright (c) 2001, 2003, 2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-pentium-debug-yassl b/BUILD/compile-pentium-debug-yassl index 57ae409eafd..337b1e017d3 100755 --- a/BUILD/compile-pentium-debug-yassl +++ b/BUILD/compile-pentium-debug-yassl @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2005 MySQL AB +# Copyright (c) 2005, 2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-pentium-max b/BUILD/compile-pentium-max index 7bd063cd24a..dbb884b53d4 100755 --- a/BUILD/compile-pentium-max +++ b/BUILD/compile-pentium-max @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2001, 2005 MySQL AB +# Copyright (c) 2001-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-pentium-pgcc b/BUILD/compile-pentium-pgcc index 383cd288bf1..aecd1413338 100755 --- a/BUILD/compile-pentium-pgcc +++ b/BUILD/compile-pentium-pgcc @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2000, 2005 MySQL AB +# Copyright (c) 2000, 2001, 2005, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-ppc-debug b/BUILD/compile-ppc-debug index 76b6bf65ce4..4d4e2410fa8 100755 --- a/BUILD/compile-ppc-debug +++ b/BUILD/compile-ppc-debug @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-ppc-debug-max b/BUILD/compile-ppc-debug-max index b2c7ec18b3e..6658b04ae30 100755 --- a/BUILD/compile-ppc-debug-max +++ b/BUILD/compile-ppc-debug-max @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2004, 2005 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-ppc-debug-max-no-ndb b/BUILD/compile-ppc-debug-max-no-ndb index e77c517b302..1a3c9302388 100755 --- a/BUILD/compile-ppc-debug-max-no-ndb +++ b/BUILD/compile-ppc-debug-max-no-ndb @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2005 MySQL AB +# Copyright (c) 2005, 2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-ppc-max b/BUILD/compile-ppc-max index cd2ada87dd8..ccc59063efc 100755 --- a/BUILD/compile-ppc-max +++ b/BUILD/compile-ppc-max @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2004, 2005 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-solaris-sparc-debug b/BUILD/compile-solaris-sparc-debug index 8e4a4672f2e..1d86a09a7ea 100755 --- a/BUILD/compile-solaris-sparc-debug +++ b/BUILD/compile-solaris-sparc-debug @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2001, 2005 MySQL AB +# Copyright (c) 2001, 2002, 2005-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/BUILD/compile-solaris-sparc-purify b/BUILD/compile-solaris-sparc-purify index 1083835ba43..11345151987 100755 --- a/BUILD/compile-solaris-sparc-purify +++ b/BUILD/compile-solaris-sparc-purify @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2000, 2005 MySQL AB +# Copyright (c) 2000-2002, 2005-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/CMakeLists.txt b/CMakeLists.txt index 75927c40cae..1ef5e837c54 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/Docs/Makefile.am b/Docs/Makefile.am index 24f921a4877..de539caac6d 100644 --- a/Docs/Makefile.am +++ b/Docs/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2006 MySQL AB +# Copyright (c) 2000-2008 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/Makefile.am b/Makefile.am index f4179f5cb47..c699720e26a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/client/completion_hash.cc b/client/completion_hash.cc index cd0ea17dfaf..082d5e9bdc3 100644 --- a/client/completion_hash.cc +++ b/client/completion_hash.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2002, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/client/completion_hash.h b/client/completion_hash.h index 8e1b2d6e453..c2473190f30 100644 --- a/client/completion_hash.h +++ b/client/completion_hash.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public diff --git a/client/echo.c b/client/echo.c index e3d22edb3ae..81c5f9cd411 100644 --- a/client/echo.c +++ b/client/echo.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/client/get_password.c b/client/get_password.c index ea024f76fb6..1818067a6b7 100644 --- a/client/get_password.c +++ b/client/get_password.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/client/mysqldump.c b/client/mysqldump.c index 68d445f9a5b..b603c9e91af 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/client/sql_string.cc b/client/sql_string.cc index 010da7eb517..0b26f09328c 100644 --- a/client/sql_string.cc +++ b/client/sql_string.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/cmd-line-utils/Makefile.am b/cmd-line-utils/Makefile.am index 1a84ce7af38..74e69e5c61d 100644 --- a/cmd-line-utils/Makefile.am +++ b/cmd-line-utils/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2003, 2004 MySQL AB # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/dbug/CMakeLists.txt b/dbug/CMakeLists.txt index 8b27f79dcf4..8693f88ae7d 100755 --- a/dbug/CMakeLists.txt +++ b/dbug/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2006 MySQL AB +# Copyright (c) 2006, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/extra/CMakeLists.txt b/extra/CMakeLists.txt index cec0db6a4ae..396a0a3b771 100755 --- a/extra/CMakeLists.txt +++ b/extra/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2006 MySQL AB +# Copyright (c) 2006, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/extra/Makefile.am b/extra/Makefile.am index 75422c4ee11..32c2e5ce54c 100644 --- a/extra/Makefile.am +++ b/extra/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2006 MySQL AB +# Copyright (c) 2000-2008 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/extra/charset2html.c b/extra/charset2html.c index 8dcfa0c8990..a2d575c5126 100644 --- a/extra/charset2html.c +++ b/extra/charset2html.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002-2004, 2007, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/CMakeLists.txt b/extra/yassl/CMakeLists.txt index eda5c3d4652..69e4518e250 100644 --- a/extra/yassl/CMakeLists.txt +++ b/extra/yassl/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/Makefile.am b/extra/yassl/Makefile.am index 2280e02f537..7f7206ebf76 100644 --- a/extra/yassl/Makefile.am +++ b/extra/yassl/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2005, 2006 MySQL AB +# Copyright (c) 2005, 2006, 2008 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/examples/client/client.cpp b/extra/yassl/examples/client/client.cpp index d05c31d4d63..fc05b66aaf7 100644 --- a/extra/yassl/examples/client/client.cpp +++ b/extra/yassl/examples/client/client.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2006 MySQL AB + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/examples/echoclient/echoclient.cpp b/extra/yassl/examples/echoclient/echoclient.cpp index c2b8ff66ac9..fabcfbec29e 100644 --- a/extra/yassl/examples/echoclient/echoclient.cpp +++ b/extra/yassl/examples/echoclient/echoclient.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2006 MySQL AB + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/examples/echoserver/echoserver.cpp b/extra/yassl/examples/echoserver/echoserver.cpp index bd044e70e8b..82696568ace 100644 --- a/extra/yassl/examples/echoserver/echoserver.cpp +++ b/extra/yassl/examples/echoserver/echoserver.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2006 MySQL AB + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/examples/server/server.cpp b/extra/yassl/examples/server/server.cpp index 3fac40e88c4..173ce8fb548 100644 --- a/extra/yassl/examples/server/server.cpp +++ b/extra/yassl/examples/server/server.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2006 MySQL AB + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/buffer.hpp b/extra/yassl/include/buffer.hpp index 2d7817a7ca2..27f71199093 100644 --- a/extra/yassl/include/buffer.hpp +++ b/extra/yassl/include/buffer.hpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/cert_wrapper.hpp b/extra/yassl/include/cert_wrapper.hpp index d07e5b627b0..8be0f3b3e6a 100644 --- a/extra/yassl/include/cert_wrapper.hpp +++ b/extra/yassl/include/cert_wrapper.hpp @@ -1,6 +1,5 @@ /* - Copyright (c) 2005-2007 MySQL AB, 2008 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/lock.hpp b/extra/yassl/include/lock.hpp index 487bedfcc70..5273f92f151 100644 --- a/extra/yassl/include/lock.hpp +++ b/extra/yassl/include/lock.hpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/openssl/prefix_ssl.h b/extra/yassl/include/openssl/prefix_ssl.h index 024cb0a9aff..22b3f4de34b 100644 --- a/extra/yassl/include/openssl/prefix_ssl.h +++ b/extra/yassl/include/openssl/prefix_ssl.h @@ -1,6 +1,5 @@ /* - Copyright (c) 2006, 2007 MySQL AB, 2008 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/socket_wrapper.hpp b/extra/yassl/include/socket_wrapper.hpp index 2372e64e56c..c9f1e3af09c 100644 --- a/extra/yassl/include/socket_wrapper.hpp +++ b/extra/yassl/include/socket_wrapper.hpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/yassl_error.hpp b/extra/yassl/include/yassl_error.hpp index 5ce70c3ca70..a4b29ae2e8c 100644 --- a/extra/yassl/include/yassl_error.hpp +++ b/extra/yassl/include/yassl_error.hpp @@ -1,6 +1,5 @@ /* - Copyright (c) 2005-2007 MySQL AB, 2010 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/yassl_imp.hpp b/extra/yassl/include/yassl_imp.hpp index 04e85c16a04..a952da0d3d9 100644 --- a/extra/yassl/include/yassl_imp.hpp +++ b/extra/yassl/include/yassl_imp.hpp @@ -1,6 +1,5 @@ /* - Copyright (c) 2005-2007 MySQL AB, 2008 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/yassl_int.hpp b/extra/yassl/include/yassl_int.hpp index 686e958d7e1..6f3ea1c6ad3 100644 --- a/extra/yassl/include/yassl_int.hpp +++ b/extra/yassl/include/yassl_int.hpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/include/yassl_types.hpp b/extra/yassl/include/yassl_types.hpp index 14b33eb9129..6a8c3f6c075 100644 --- a/extra/yassl/include/yassl_types.hpp +++ b/extra/yassl/include/yassl_types.hpp @@ -1,6 +1,5 @@ /* - Copyright (c) 2005-2007 MySQL AB, 2008 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/buffer.cpp b/extra/yassl/src/buffer.cpp index f8174098249..6f356e9fd4f 100644 --- a/extra/yassl/src/buffer.cpp +++ b/extra/yassl/src/buffer.cpp @@ -1,6 +1,5 @@ /* - Copyright (c) 2005-2007 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/cert_wrapper.cpp b/extra/yassl/src/cert_wrapper.cpp index 917cfa1a8fb..639f0996d7e 100644 --- a/extra/yassl/src/cert_wrapper.cpp +++ b/extra/yassl/src/cert_wrapper.cpp @@ -1,6 +1,5 @@ /* - Copyright (c) 2005-2007 MySQL AB, 2008, 2009 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/crypto_wrapper.cpp b/extra/yassl/src/crypto_wrapper.cpp index ccd43c442c9..d8952d0daf0 100644 --- a/extra/yassl/src/crypto_wrapper.cpp +++ b/extra/yassl/src/crypto_wrapper.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/handshake.cpp b/extra/yassl/src/handshake.cpp index 4b1ed3d7fef..d0f6827e862 100644 --- a/extra/yassl/src/handshake.cpp +++ b/extra/yassl/src/handshake.cpp @@ -1,6 +1,5 @@ /* - Copyright (c) 2005-2008 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/lock.cpp b/extra/yassl/src/lock.cpp index d603440757f..c74ea1c6b76 100644 --- a/extra/yassl/src/lock.cpp +++ b/extra/yassl/src/lock.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/make.bat b/extra/yassl/src/make.bat index cccd11dbd17..42f49ee4c0a 100755 --- a/extra/yassl/src/make.bat +++ b/extra/yassl/src/make.bat @@ -1,4 +1,4 @@ -REM Copyright (C) 2006, 2007 MySQL AB +REM Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. REM REM This program is free software; you can redistribute it and/or modify REM it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/socket_wrapper.cpp b/extra/yassl/src/socket_wrapper.cpp index d88df13c08e..7afd4d41d1d 100644 --- a/extra/yassl/src/socket_wrapper.cpp +++ b/extra/yassl/src/socket_wrapper.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/ssl.cpp b/extra/yassl/src/ssl.cpp index 7c264e5a939..b0499a55e14 100644 --- a/extra/yassl/src/ssl.cpp +++ b/extra/yassl/src/ssl.cpp @@ -1,6 +1,5 @@ /* - Copyright (c) 2005-2007 MySQL AB, 2008-2010 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/template_instnt.cpp b/extra/yassl/src/template_instnt.cpp index fe3a251b865..638ddfb3e4e 100644 --- a/extra/yassl/src/template_instnt.cpp +++ b/extra/yassl/src/template_instnt.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/yassl.cpp b/extra/yassl/src/yassl.cpp index 99a1da5371b..b6b9a87e09a 100644 --- a/extra/yassl/src/yassl.cpp +++ b/extra/yassl/src/yassl.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/src/yassl_error.cpp b/extra/yassl/src/yassl_error.cpp index 2cefd27d428..62fec6b3b23 100644 --- a/extra/yassl/src/yassl_error.cpp +++ b/extra/yassl/src/yassl_error.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/Makefile.am b/extra/yassl/taocrypt/Makefile.am index de59419a736..39a15a041e2 100644 --- a/extra/yassl/taocrypt/Makefile.am +++ b/extra/yassl/taocrypt/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2005, 2006 MySQL AB +# Copyright (c) 2005, 2006, 2008 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/benchmark/benchmark.cpp b/extra/yassl/taocrypt/benchmark/benchmark.cpp index 225a1a0fa46..1051b2a4a20 100644 --- a/extra/yassl/taocrypt/benchmark/benchmark.cpp +++ b/extra/yassl/taocrypt/benchmark/benchmark.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2006, 2007 MySQL AB + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/benchmark/make.bat b/extra/yassl/taocrypt/benchmark/make.bat index 1457521bce9..e9156e0c8af 100755 --- a/extra/yassl/taocrypt/benchmark/make.bat +++ b/extra/yassl/taocrypt/benchmark/make.bat @@ -1,4 +1,4 @@ -REM Copyright (C) 2006, 2007 MySQL AB +REM Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. REM REM This program is free software; you can redistribute it and/or modify REM it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/aes.hpp b/extra/yassl/taocrypt/include/aes.hpp index e2041fc9350..01763033156 100644 --- a/extra/yassl/taocrypt/include/aes.hpp +++ b/extra/yassl/taocrypt/include/aes.hpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/asn.hpp b/extra/yassl/taocrypt/include/asn.hpp index c20387d86c7..fee2f26fb73 100644 --- a/extra/yassl/taocrypt/include/asn.hpp +++ b/extra/yassl/taocrypt/include/asn.hpp @@ -1,6 +1,5 @@ /* - Copyright (c) 2005-2007 MySQL AB, 2010 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/block.hpp b/extra/yassl/taocrypt/include/block.hpp index ae3df8a3009..d7a69211e02 100644 --- a/extra/yassl/taocrypt/include/block.hpp +++ b/extra/yassl/taocrypt/include/block.hpp @@ -1,6 +1,5 @@ /* - Copyright (c) 2005-2007 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/blowfish.hpp b/extra/yassl/taocrypt/include/blowfish.hpp index 3ad2aedc587..1f8d0589234 100644 --- a/extra/yassl/taocrypt/include/blowfish.hpp +++ b/extra/yassl/taocrypt/include/blowfish.hpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/des.hpp b/extra/yassl/taocrypt/include/des.hpp index 2bc41fc2628..d88e9ef2f46 100644 --- a/extra/yassl/taocrypt/include/des.hpp +++ b/extra/yassl/taocrypt/include/des.hpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/hash.hpp b/extra/yassl/taocrypt/include/hash.hpp index 4ebc82e073d..4d2f7dd35a1 100644 --- a/extra/yassl/taocrypt/include/hash.hpp +++ b/extra/yassl/taocrypt/include/hash.hpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/hc128.hpp b/extra/yassl/taocrypt/include/hc128.hpp index d1cf5f075f2..0449b28d8c7 100644 --- a/extra/yassl/taocrypt/include/hc128.hpp +++ b/extra/yassl/taocrypt/include/hc128.hpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/integer.hpp b/extra/yassl/taocrypt/include/integer.hpp index 256573cf622..e1a2ed5f426 100644 --- a/extra/yassl/taocrypt/include/integer.hpp +++ b/extra/yassl/taocrypt/include/integer.hpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/kernelc.hpp b/extra/yassl/taocrypt/include/kernelc.hpp index 5bdf1cffa3f..0840b3f2740 100644 --- a/extra/yassl/taocrypt/include/kernelc.hpp +++ b/extra/yassl/taocrypt/include/kernelc.hpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/misc.hpp b/extra/yassl/taocrypt/include/misc.hpp index b6925f916f8..1382d3690fb 100644 --- a/extra/yassl/taocrypt/include/misc.hpp +++ b/extra/yassl/taocrypt/include/misc.hpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/modes.hpp b/extra/yassl/taocrypt/include/modes.hpp index 5fd36b80d3e..bfe8c6ec5d4 100644 --- a/extra/yassl/taocrypt/include/modes.hpp +++ b/extra/yassl/taocrypt/include/modes.hpp @@ -1,6 +1,5 @@ /* - Copyright (c) 2005-2007 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/pwdbased.hpp b/extra/yassl/taocrypt/include/pwdbased.hpp index d050fd8988b..9025cc1a50c 100644 --- a/extra/yassl/taocrypt/include/pwdbased.hpp +++ b/extra/yassl/taocrypt/include/pwdbased.hpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/rabbit.hpp b/extra/yassl/taocrypt/include/rabbit.hpp index 1e7276dd8ec..fb4e12c66bc 100644 --- a/extra/yassl/taocrypt/include/rabbit.hpp +++ b/extra/yassl/taocrypt/include/rabbit.hpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/rsa.hpp b/extra/yassl/taocrypt/include/rsa.hpp index 11a4ccfd039..ee3e378a69f 100644 --- a/extra/yassl/taocrypt/include/rsa.hpp +++ b/extra/yassl/taocrypt/include/rsa.hpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/runtime.hpp b/extra/yassl/taocrypt/include/runtime.hpp index 568c0b3afd8..ef7ce092cde 100644 --- a/extra/yassl/taocrypt/include/runtime.hpp +++ b/extra/yassl/taocrypt/include/runtime.hpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/include/types.hpp b/extra/yassl/taocrypt/include/types.hpp index 5d8bc9f0683..973e1d19893 100644 --- a/extra/yassl/taocrypt/include/types.hpp +++ b/extra/yassl/taocrypt/include/types.hpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/mySTL/stdexcept.hpp b/extra/yassl/taocrypt/mySTL/stdexcept.hpp index 15533eebc02..79ae6de3380 100644 --- a/extra/yassl/taocrypt/mySTL/stdexcept.hpp +++ b/extra/yassl/taocrypt/mySTL/stdexcept.hpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/mySTL/vector.hpp b/extra/yassl/taocrypt/mySTL/vector.hpp index 35b92610942..f3702b75125 100644 --- a/extra/yassl/taocrypt/mySTL/vector.hpp +++ b/extra/yassl/taocrypt/mySTL/vector.hpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/Makefile.am b/extra/yassl/taocrypt/src/Makefile.am index bdfa156d5e9..ede3821f872 100644 --- a/extra/yassl/taocrypt/src/Makefile.am +++ b/extra/yassl/taocrypt/src/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/aes.cpp b/extra/yassl/taocrypt/src/aes.cpp index 811b483b0c9..9b04e7b0dbc 100644 --- a/extra/yassl/taocrypt/src/aes.cpp +++ b/extra/yassl/taocrypt/src/aes.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/aestables.cpp b/extra/yassl/taocrypt/src/aestables.cpp index 05c2c3b8e62..60795a549e4 100644 --- a/extra/yassl/taocrypt/src/aestables.cpp +++ b/extra/yassl/taocrypt/src/aestables.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/algebra.cpp b/extra/yassl/taocrypt/src/algebra.cpp index 73423d47546..b4086522124 100644 --- a/extra/yassl/taocrypt/src/algebra.cpp +++ b/extra/yassl/taocrypt/src/algebra.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/arc4.cpp b/extra/yassl/taocrypt/src/arc4.cpp index 4630adcb11a..a76a37904f9 100644 --- a/extra/yassl/taocrypt/src/arc4.cpp +++ b/extra/yassl/taocrypt/src/arc4.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/blowfish.cpp b/extra/yassl/taocrypt/src/blowfish.cpp index 64e8f0a84aa..cedae6af281 100644 --- a/extra/yassl/taocrypt/src/blowfish.cpp +++ b/extra/yassl/taocrypt/src/blowfish.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/coding.cpp b/extra/yassl/taocrypt/src/coding.cpp index ba485eea77e..bc4727cc5e3 100644 --- a/extra/yassl/taocrypt/src/coding.cpp +++ b/extra/yassl/taocrypt/src/coding.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/dsa.cpp b/extra/yassl/taocrypt/src/dsa.cpp index a4e9c9503e7..bf116d3e48d 100644 --- a/extra/yassl/taocrypt/src/dsa.cpp +++ b/extra/yassl/taocrypt/src/dsa.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/hash.cpp b/extra/yassl/taocrypt/src/hash.cpp index b36a486368c..c176e6a68d0 100644 --- a/extra/yassl/taocrypt/src/hash.cpp +++ b/extra/yassl/taocrypt/src/hash.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/hc128.cpp b/extra/yassl/taocrypt/src/hc128.cpp index aac92f0abb4..8934c318781 100644 --- a/extra/yassl/taocrypt/src/hc128.cpp +++ b/extra/yassl/taocrypt/src/hc128.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/make.bat b/extra/yassl/taocrypt/src/make.bat index ecd3023f5ab..a8c00f8ee0d 100755 --- a/extra/yassl/taocrypt/src/make.bat +++ b/extra/yassl/taocrypt/src/make.bat @@ -1,4 +1,4 @@ -REM Copyright (C) 2006, 2007 MySQL AB +REM Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. REM REM This program is free software; you can redistribute it and/or modify REM it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/md4.cpp b/extra/yassl/taocrypt/src/md4.cpp index 54820f4c944..9364a1c23b1 100644 --- a/extra/yassl/taocrypt/src/md4.cpp +++ b/extra/yassl/taocrypt/src/md4.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/md5.cpp b/extra/yassl/taocrypt/src/md5.cpp index 4d0a8bd03be..ee0d64acc17 100644 --- a/extra/yassl/taocrypt/src/md5.cpp +++ b/extra/yassl/taocrypt/src/md5.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/misc.cpp b/extra/yassl/taocrypt/src/misc.cpp index 5ffa2a2a07a..b576d3d59d2 100644 --- a/extra/yassl/taocrypt/src/misc.cpp +++ b/extra/yassl/taocrypt/src/misc.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/rabbit.cpp b/extra/yassl/taocrypt/src/rabbit.cpp index 0ea4146618a..071a25191f8 100644 --- a/extra/yassl/taocrypt/src/rabbit.cpp +++ b/extra/yassl/taocrypt/src/rabbit.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/random.cpp b/extra/yassl/taocrypt/src/random.cpp index aa9be7f1985..084871c5447 100644 --- a/extra/yassl/taocrypt/src/random.cpp +++ b/extra/yassl/taocrypt/src/random.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/ripemd.cpp b/extra/yassl/taocrypt/src/ripemd.cpp index e012db43de5..f77010ca94d 100644 --- a/extra/yassl/taocrypt/src/ripemd.cpp +++ b/extra/yassl/taocrypt/src/ripemd.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/rsa.cpp b/extra/yassl/taocrypt/src/rsa.cpp index 576146377a3..69c59402e48 100644 --- a/extra/yassl/taocrypt/src/rsa.cpp +++ b/extra/yassl/taocrypt/src/rsa.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/sha.cpp b/extra/yassl/taocrypt/src/sha.cpp index 1ae42d94e4c..f67a4f55067 100644 --- a/extra/yassl/taocrypt/src/sha.cpp +++ b/extra/yassl/taocrypt/src/sha.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/template_instnt.cpp b/extra/yassl/taocrypt/src/template_instnt.cpp index b472d18236f..de0137dda7c 100644 --- a/extra/yassl/taocrypt/src/template_instnt.cpp +++ b/extra/yassl/taocrypt/src/template_instnt.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 MySQL AB + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/src/twofish.cpp b/extra/yassl/taocrypt/src/twofish.cpp index 4ff1304a4cd..235b712b7c5 100644 --- a/extra/yassl/taocrypt/src/twofish.cpp +++ b/extra/yassl/taocrypt/src/twofish.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/test/make.bat b/extra/yassl/taocrypt/test/make.bat index d6d62b984a8..51f266a1ee6 100755 --- a/extra/yassl/taocrypt/test/make.bat +++ b/extra/yassl/taocrypt/test/make.bat @@ -1,4 +1,4 @@ -REM Copyright (C) 2006, 2007 MySQL AB +REM Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. REM REM This program is free software; you can redistribute it and/or modify REM it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/test/memory.cpp b/extra/yassl/taocrypt/test/memory.cpp index a9b21f94902..053d79688a2 100644 --- a/extra/yassl/taocrypt/test/memory.cpp +++ b/extra/yassl/taocrypt/test/memory.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/taocrypt/test/test.cpp b/extra/yassl/taocrypt/test/test.cpp index 4cd5dba8ac6..0643b79e51b 100644 --- a/extra/yassl/taocrypt/test/test.cpp +++ b/extra/yassl/taocrypt/test/test.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2006, 2007 MySQL AB + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/testsuite/make.bat b/extra/yassl/testsuite/make.bat index 941e499d7e6..e056f3fed53 100755 --- a/extra/yassl/testsuite/make.bat +++ b/extra/yassl/testsuite/make.bat @@ -1,4 +1,4 @@ -REM Copyright (C) 2006, 2007 MySQL AB +REM Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. REM REM This program is free software; you can redistribute it and/or modify REM it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/testsuite/test.hpp b/extra/yassl/testsuite/test.hpp index 1f10095b945..7f49565b1f0 100644 --- a/extra/yassl/testsuite/test.hpp +++ b/extra/yassl/testsuite/test.hpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/extra/yassl/testsuite/testsuite.cpp b/extra/yassl/testsuite/testsuite.cpp index fa8c997e7c2..7973a3704e1 100644 --- a/extra/yassl/testsuite/testsuite.cpp +++ b/extra/yassl/testsuite/testsuite.cpp @@ -1,5 +1,5 @@ /* - Copyright (C) 2006, 2007 MySQL AB + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/base64.h b/include/base64.h index 4ac0aa72ad8..52f1b6d2876 100644 --- a/include/base64.h +++ b/include/base64.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/errmsg.h b/include/errmsg.h index a6d8c770de8..c827dc1cc97 100644 --- a/include/errmsg.h +++ b/include/errmsg.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/ft_global.h b/include/ft_global.h index 752371d6bc6..b9e80e56716 100644 --- a/include/ft_global.h +++ b/include/ft_global.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/help_end.h b/include/help_end.h index 4426cb80bce..251b7806ad7 100644 --- a/include/help_end.h +++ b/include/help_end.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2005 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/help_start.h b/include/help_start.h index 3ae20eea7d7..4817edf9da9 100644 --- a/include/help_start.h +++ b/include/help_start.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2005 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/keycache.h b/include/keycache.h index 1307e869717..6d41fbd0b2b 100644 --- a/include/keycache.h +++ b/include/keycache.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2003-2007 MySQL AB, 2009 Sun Microsystems, Inc. + Copyright (c) 2003-2005, 2007 MySQL AB, 2009 Sun Microsystems, Inc. Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/include/m_ctype.h b/include/m_ctype.h index b36fdbe6d68..a6146333ca4 100644 --- a/include/m_ctype.h +++ b/include/m_ctype.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/m_string.h b/include/m_string.h index dc916792f60..08738c9e482 100644 --- a/include/m_string.h +++ b/include/m_string.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_aes.h b/include/my_aes.h index 1bbdf5663ea..d60c45d2a9b 100644 --- a/include/my_aes.h +++ b/include/my_aes.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002 MySQL AB +/* Copyright (c) 2002, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_alloc.h b/include/my_alloc.h index 93b7438a1df..52595e9ab76 100644 --- a/include/my_alloc.h +++ b/include/my_alloc.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_attribute.h b/include/my_attribute.h index 8309d85f20a..56e37abb833 100644 --- a/include/my_attribute.h +++ b/include/my_attribute.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_base.h b/include/my_base.h index ffd68046029..7a58e3397b4 100644 --- a/include/my_base.h +++ b/include/my_base.h @@ -1,6 +1,5 @@ /* - Copyright (c) 2000-2008 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_compiler.h b/include/my_compiler.h index 5f898621159..3b37d4d7cf0 100644 --- a/include/my_compiler.h +++ b/include/my_compiler.h @@ -1,7 +1,7 @@ #ifndef MY_COMPILER_INCLUDED #define MY_COMPILER_INCLUDED -/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_dir.h b/include/my_dir.h index 06509a3af19..86dd5030090 100644 --- a/include/my_dir.h +++ b/include/my_dir.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2003 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_libwrap.h b/include/my_libwrap.h index 9a8579475fb..b71491d2776 100644 --- a/include/my_libwrap.h +++ b/include/my_libwrap.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_list.h b/include/my_list.h index 775b56587b8..9d27ecad21f 100644 --- a/include/my_list.h +++ b/include/my_list.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_md5.h b/include/my_md5.h index 6458f27c5cc..709f211fa31 100644 --- a/include/my_md5.h +++ b/include/my_md5.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_net.h b/include/my_net.h index 3af79ea3db5..9986fbd9c35 100644 --- a/include/my_net.h +++ b/include/my_net.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2004, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_nosys.h b/include/my_nosys.h index df5639b81e2..ae824f2b4d3 100644 --- a/include/my_nosys.h +++ b/include/my_nosys.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_sys.h b/include/my_sys.h index 1973f07ac13..e6d99547dfc 100644 --- a/include/my_sys.h +++ b/include/my_sys.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_tree.h b/include/my_tree.h index 24bbdd54019..f6015cadefc 100644 --- a/include/my_tree.h +++ b/include/my_tree.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2002, 2004, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_trie.h b/include/my_trie.h index 72dd485af04..a916024f5eb 100644 --- a/include/my_trie.h +++ b/include/my_trie.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_user.h b/include/my_user.h index 44eebf1551d..d1d09a43407 100644 --- a/include/my_user.h +++ b/include/my_user.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/my_vle.h b/include/my_vle.h index c09f82229c4..30b26d9776d 100644 --- a/include/my_vle.h +++ b/include/my_vle.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/include/my_xml.h b/include/my_xml.h index 6a453ee90be..1f7e5c554d2 100644 --- a/include/my_xml.h +++ b/include/my_xml.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002, 2003, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/myisampack.h b/include/myisampack.h index 7d4871bd1cb..afbe83306d2 100644 --- a/include/myisampack.h +++ b/include/myisampack.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2002, 2004 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/mysql_time.h b/include/mysql_time.h index 0a3f17a81fb..0a3ddccbf3c 100644 --- a/include/mysql_time.h +++ b/include/mysql_time.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/mysql_version.h.in b/include/mysql_version.h.in index 04a43f2c968..2e1b3c6cef4 100644 --- a/include/mysql_version.h.in +++ b/include/mysql_version.h.in @@ -1,4 +1,4 @@ -/* Copyright Abandoned 1996, 1999, 2001 MySQL AB +/* Copyright (c) 1996, 1999-2004, 2007 MySQL AB This file is public domain and comes with NO WARRANTY of any kind */ /* Version numbers for protocol & mysqld */ diff --git a/include/queues.h b/include/queues.h index d01b73ba999..e5e211fb77b 100644 --- a/include/queues.h +++ b/include/queues.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/rijndael.h b/include/rijndael.h index 89963a85c99..75ee8fefdf3 100644 --- a/include/rijndael.h +++ b/include/rijndael.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002 MySQL AB +/* Copyright (c) 2002, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/sslopt-case.h b/include/sslopt-case.h index adb9a28503b..d8faffe0249 100644 --- a/include/sslopt-case.h +++ b/include/sslopt-case.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2002 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/sslopt-vars.h b/include/sslopt-vars.h index 3369f870db2..dcb6a2f0513 100644 --- a/include/sslopt-vars.h +++ b/include/sslopt-vars.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/thr_alarm.h b/include/thr_alarm.h index fb906039269..8a5881af938 100644 --- a/include/thr_alarm.h +++ b/include/thr_alarm.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2004, 2006-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/typelib.h b/include/typelib.h index 46106d1bdab..fb76fe6ca4a 100644 --- a/include/typelib.h +++ b/include/typelib.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2003, 2004, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/violite.h b/include/violite.h index 5facd0911b7..0e041922bd3 100644 --- a/include/violite.h +++ b/include/violite.h @@ -1,6 +1,5 @@ /* - Copyright (c) 2000-2007 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/include/welcome_copyright_notice.h b/include/welcome_copyright_notice.h index 15d11bf3664..290e9b30eef 100644 --- a/include/welcome_copyright_notice.h +++ b/include/welcome_copyright_notice.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/libmysql/Makefile.am b/libmysql/Makefile.am index 2453547cac8..e4d620c1fa5 100644 --- a/libmysql/Makefile.am +++ b/libmysql/Makefile.am @@ -1,5 +1,4 @@ -# Copyright (c) 2000-2007 MySQL AB, 2009 Sun Microsystems, Inc. -# Use is subject to license terms. +# Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of version 2 GNU General Public License as diff --git a/libmysql/client_settings.h b/libmysql/client_settings.h index f87e625771f..4ed20289ddf 100644 --- a/libmysql/client_settings.h +++ b/libmysql/client_settings.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2005 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/libmysql/conf_to_src.c b/libmysql/conf_to_src.c index f39a2e1856f..5970e3b501a 100644 --- a/libmysql/conf_to_src.c +++ b/libmysql/conf_to_src.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2004 MySQL AB +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/libmysql/dll.c b/libmysql/dll.c index 8654c035c63..9336213998c 100644 --- a/libmysql/dll.c +++ b/libmysql/dll.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2004 MySQL AB +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/libmysql/errmsg.c b/libmysql/errmsg.c index 163632127c3..a686796952f 100644 --- a/libmysql/errmsg.c +++ b/libmysql/errmsg.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2004 MySQL AB +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/libmysql/get_password.c b/libmysql/get_password.c index 63d4e68541f..f4b07f2dabe 100644 --- a/libmysql/get_password.c +++ b/libmysql/get_password.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2004 MySQL AB +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/libmysql/manager.c b/libmysql/manager.c index 335323cb31d..7617a4a40f2 100644 --- a/libmysql/manager.c +++ b/libmysql/manager.c @@ -1,5 +1,4 @@ -/* Copyright (c) 2001-2004, 2006-2008 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. +/* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/libmysql_r/Makefile.am b/libmysql_r/Makefile.am index d4f0bea590b..56e593e222e 100644 --- a/libmysql_r/Makefile.am +++ b/libmysql_r/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2004 MySQL AB +# Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of version 2 GNU General Public License as diff --git a/libmysqld/emb_qcache.cc b/libmysqld/emb_qcache.cc index b4eddf39c1f..6c557a63eb9 100644 --- a/libmysqld/emb_qcache.cc +++ b/libmysqld/emb_qcache.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/libmysqld/examples/CMakeLists.txt b/libmysqld/examples/CMakeLists.txt index d7f994d9b9f..f5a1f512b9a 100644 --- a/libmysqld/examples/CMakeLists.txt +++ b/libmysqld/examples/CMakeLists.txt @@ -1,5 +1,4 @@ -# Copyright (c) 2006-2008 MySQL AB, 2008, 2009 Sun Microsystems, Inc. -# Use is subject to license terms. +# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/libmysqld/examples/Makefile.am b/libmysqld/examples/Makefile.am index a0f1a64ffdc..22ab5d44433 100644 --- a/libmysqld/examples/Makefile.am +++ b/libmysqld/examples/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/mysql-test/include/default_my.cnf b/mysql-test/include/default_my.cnf index f4c9a617cd9..111c2704da2 100644 --- a/mysql-test/include/default_my.cnf +++ b/mysql-test/include/default_my.cnf @@ -1,4 +1,4 @@ -# Copyright (c) 2007 MySQL AB, 2009, 2010 Sun Microsystems, Inc. +# Copyright (c) 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/mysql-test/include/default_mysqld.cnf b/mysql-test/include/default_mysqld.cnf index 8990bcbb5c0..7f7a14f38f6 100644 --- a/mysql-test/include/default_mysqld.cnf +++ b/mysql-test/include/default_mysqld.cnf @@ -1,4 +1,4 @@ -# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2007, 2008 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/mysql-test/lib/My/Find.pm b/mysql-test/lib/My/Find.pm index 2730f83a496..4fcbb756575 100644 --- a/mysql-test/lib/My/Find.pm +++ b/mysql-test/lib/My/Find.pm @@ -1,5 +1,5 @@ # -*- cperl -*- -# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/mysql-test/lib/My/SafeProcess/CMakeLists.txt b/mysql-test/lib/My/SafeProcess/CMakeLists.txt index 5150fcaafff..8a5338a20be 100644 --- a/mysql-test/lib/My/SafeProcess/CMakeLists.txt +++ b/mysql-test/lib/My/SafeProcess/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2008 MySQL AB +# Copyright (c) 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/mysql-test/lib/My/SafeProcess/safe_process.cc b/mysql-test/lib/My/SafeProcess/safe_process.cc index 3abda6e7f67..e95a2c4a91e 100644 --- a/mysql-test/lib/My/SafeProcess/safe_process.cc +++ b/mysql-test/lib/My/SafeProcess/safe_process.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm index 522e516c6e7..dd5485e6799 100644 --- a/mysql-test/lib/mtr_cases.pm +++ b/mysql-test/lib/mtr_cases.pm @@ -1,5 +1,5 @@ # -*- cperl -*- -# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/mysql-test/lib/mtr_match.pm b/mysql-test/lib/mtr_match.pm index 6fc9832ac43..b5f512d77e0 100644 --- a/mysql-test/lib/mtr_match.pm +++ b/mysql-test/lib/mtr_match.pm @@ -1,5 +1,5 @@ # -*- cperl -*- -# Copyright (C) 2004-2008 MySQL AB +# Copyright (c) 2004, 2006, 2008 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/mysql-test/lib/v1/mysql-test-run.pl b/mysql-test/lib/v1/mysql-test-run.pl index 3065892c968..12792b297ac 100755 --- a/mysql-test/lib/v1/mysql-test-run.pl +++ b/mysql-test/lib/v1/mysql-test-run.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl # -*- cperl -*- -# Copyright (c) 2008, 2009 Sun Microsystems, Inc. +# Copyright (c) 2008-2010 Sun Microsystems, Inc. # Use is subject to license terms. # # This program is free software; you can redistribute it and/or modify diff --git a/mysys/array.c b/mysys/array.c index db219eb2430..3f154778a3f 100644 --- a/mysys/array.c +++ b/mysys/array.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2002, 2005-2007 MySQL AB, 2009 Sun Microsystems, Inc. + Copyright (c) 2000, 2002, 2005, 2007 MySQL AB, 2009 Sun Microsystems, Inc. Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/mysys/checksum.c b/mysys/checksum.c index 1c7c9358d53..b01f2002309 100644 --- a/mysys/checksum.c +++ b/mysys/checksum.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/default_modify.c b/mysys/default_modify.c index 88df0122da2..c9e3e11f23f 100644 --- a/mysys/default_modify.c +++ b/mysys/default_modify.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/errors.c b/mysys/errors.c index 1199df2f2be..a0997485ef2 100644 --- a/mysys/errors.c +++ b/mysys/errors.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/list.c b/mysys/list.c index aaadd686365..74ab1968ce2 100644 --- a/mysys/list.c +++ b/mysys/list.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2002, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/make-conf.c b/mysys/make-conf.c index 0dacde4dee0..9b4b4055601 100644 --- a/mysys/make-conf.c +++ b/mysys/make-conf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/md5.c b/mysys/md5.c index 2388cebedc4..71e6edf2410 100644 --- a/mysys/md5.c +++ b/mysys/md5.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_brkhant.c b/mysys/mf_brkhant.c index 3573b9973b2..90a68330d44 100644 --- a/mysys/mf_brkhant.c +++ b/mysys/mf_brkhant.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_cache.c b/mysys/mf_cache.c index f0df0f3fa77..77ddfd83bb6 100644 --- a/mysys/mf_cache.c +++ b/mysys/mf_cache.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_dirname.c b/mysys/mf_dirname.c index 1b428ded751..3d1e57e4e3b 100644 --- a/mysys/mf_dirname.c +++ b/mysys/mf_dirname.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_fn_ext.c b/mysys/mf_fn_ext.c index da7fac3de73..06736087e71 100644 --- a/mysys/mf_fn_ext.c +++ b/mysys/mf_fn_ext.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_format.c b/mysys/mf_format.c index b0c7075aa9a..b4125650d05 100644 --- a/mysys/mf_format.c +++ b/mysys/mf_format.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2000-2007 MySQL AB, 2009 Sun Microsystems, Inc. + Copyright (c) 2000-2005, 2007 MySQL AB, 2009 Sun Microsystems, Inc. Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/mysys/mf_getdate.c b/mysys/mf_getdate.c index f517fcae70d..c5d18cc4c8c 100644 --- a/mysys/mf_getdate.c +++ b/mysys/mf_getdate.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2004-2007 MySQL AB, 2009 Sun Microsystems, Inc. + Copyright (c) 2000, 2004, 2005, 2007 MySQL AB, 2009 Sun Microsystems, Inc. Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/mysys/mf_iocache2.c b/mysys/mf_iocache2.c index dd56e332433..9221467b216 100644 --- a/mysys/mf_iocache2.c +++ b/mysys/mf_iocache2.c @@ -1,6 +1,5 @@ /* - Copyright (c) 2000-2004, 2006, 2007 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_keycaches.c b/mysys/mf_keycaches.c index 6227a05ce06..c5ec34d8033 100644 --- a/mysys/mf_keycaches.c +++ b/mysys/mf_keycaches.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_path.c b/mysys/mf_path.c index 73e73cb7f76..b3ebcb2612a 100644 --- a/mysys/mf_path.c +++ b/mysys/mf_path.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_qsort.c b/mysys/mf_qsort.c index 4b3ecb603a6..f8ae55b9650 100644 --- a/mysys/mf_qsort.c +++ b/mysys/mf_qsort.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2002, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_radix.c b/mysys/mf_radix.c index 582ca76b8f8..969099654a9 100644 --- a/mysys/mf_radix.c +++ b/mysys/mf_radix.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_same.c b/mysys/mf_same.c index 6738dc8051e..368bf116ee9 100644 --- a/mysys/mf_same.c +++ b/mysys/mf_same.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_sort.c b/mysys/mf_sort.c index 686ebbc1d14..d4e5a06e4d8 100644 --- a/mysys/mf_sort.c +++ b/mysys/mf_sort.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_soundex.c b/mysys/mf_soundex.c index fe30d8c81af..0a6c1fb9a4f 100644 --- a/mysys/mf_soundex.c +++ b/mysys/mf_soundex.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002, 2004, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_tempfile.c b/mysys/mf_tempfile.c index 40016210de4..1a17ca3c06c 100644 --- a/mysys/mf_tempfile.c +++ b/mysys/mf_tempfile.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_unixpath.c b/mysys/mf_unixpath.c index 75f8de14879..a36c6d8c181 100644 --- a/mysys/mf_unixpath.c +++ b/mysys/mf_unixpath.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mf_wcomp.c b/mysys/mf_wcomp.c index 4786537d1a5..70bc4c94b61 100644 --- a/mysys/mf_wcomp.c +++ b/mysys/mf_wcomp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2003, 2004 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mulalloc.c b/mysys/mulalloc.c index f4ca3d9f9ab..871e55fc73d 100644 --- a/mysys/mulalloc.c +++ b/mysys/mulalloc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002, 2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_access.c b/mysys/my_access.c index 4734fbac8ba..e67bd7aedfa 100644 --- a/mysys/my_access.c +++ b/mysys/my_access.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_aes.c b/mysys/my_aes.c index 575d4702dee..42e02d003c1 100644 --- a/mysys/my_aes.c +++ b/mysys/my_aes.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002 MySQL AB +/* Copyright (c) 2002, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_append.c b/mysys/my_append.c index d8789f95d95..c685536048c 100644 --- a/mysys/my_append.c +++ b/mysys/my_append.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002, 2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_bit.c b/mysys/my_bit.c index 2881eb1ebd2..9d4a92b6b33 100644 --- a/mysys/my_bit.c +++ b/mysys/my_bit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2004, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_chsize.c b/mysys/my_chsize.c index b1dbb22c687..7026a6f9189 100644 --- a/mysys/my_chsize.c +++ b/mysys/my_chsize.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_clock.c b/mysys/my_clock.c index adc755028d5..ab5e99315c5 100644 --- a/mysys/my_clock.c +++ b/mysys/my_clock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_compress.c b/mysys/my_compress.c index a3d9d56915e..45acb2db111 100644 --- a/mysys/my_compress.c +++ b/mysys/my_compress.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2004, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_conio.c b/mysys/my_conio.c index 5dbd31193a9..3ed3dd8b1ee 100644 --- a/mysys/my_conio.c +++ b/mysys/my_conio.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_crc32.c b/mysys/my_crc32.c index 51c553da5ea..05e5501f141 100644 --- a/mysys/my_crc32.c +++ b/mysys/my_crc32.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2004 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_create.c b/mysys/my_create.c index 5c9a1e027d2..7b2e27f9fdf 100644 --- a/mysys/my_create.c +++ b/mysys/my_create.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2005-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_delete.c b/mysys/my_delete.c index 22425ed95fd..1ac761a1750 100644 --- a/mysys/my_delete.c +++ b/mysys/my_delete.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_div.c b/mysys/my_div.c index d29d3668852..75dab5cfd3e 100644 --- a/mysys/my_div.c +++ b/mysys/my_div.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002, 2004, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_dup.c b/mysys/my_dup.c index 55f5e0c0099..6603e1650d5 100644 --- a/mysys/my_dup.c +++ b/mysys/my_dup.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2004, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_error.c b/mysys/my_error.c index 5167598bfae..fa8b2c1b5c9 100644 --- a/mysys/my_error.c +++ b/mysys/my_error.c @@ -1,6 +1,5 @@ /* - Copyright (c) 2000-2004, 2006, 2007 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_fopen.c b/mysys/my_fopen.c index 75c5ec6ff8b..f6016dc9d08 100644 --- a/mysys/my_fopen.c +++ b/mysys/my_fopen.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_getpagesize.c b/mysys/my_getpagesize.c index b0560cede35..a6ce2faf9e3 100644 --- a/mysys/my_getpagesize.c +++ b/mysys/my_getpagesize.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2003, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_handler_errors.h b/mysys/my_handler_errors.h index 1710ac81395..e507dcac3c9 100644 --- a/mysys/my_handler_errors.h +++ b/mysys/my_handler_errors.h @@ -1,5 +1,4 @@ -/* Copyright (c) 2008 MySQL AB - Use is subject to license terms. +/* Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_init.c b/mysys/my_init.c index deb62603e9a..bf0cf9a486d 100644 --- a/mysys/my_init.c +++ b/mysys/my_init.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_largepage.c b/mysys/my_largepage.c index ecb61802842..7ac2c39a3bf 100644 --- a/mysys/my_largepage.c +++ b/mysys/my_largepage.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2004, 2006, 2007 MySQL AB, 2009 Sun Microsystems, Inc. + Copyright (c) 2004, 2007 MySQL AB, 2009 Sun Microsystems, Inc. Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/mysys/my_libwrap.c b/mysys/my_libwrap.c index e72334ba806..7a2ea491e86 100644 --- a/mysys/my_libwrap.c +++ b/mysys/my_libwrap.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_lock.c b/mysys/my_lock.c index c0522ee849d..e31c0dd6a60 100644 --- a/mysys/my_lock.c +++ b/mysys/my_lock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2004, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_lockmem.c b/mysys/my_lockmem.c index b96331cd3cf..4cc239cc754 100644 --- a/mysys/my_lockmem.c +++ b/mysys/my_lockmem.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_memmem.c b/mysys/my_memmem.c index c000f14bc66..7722f89bbd0 100644 --- a/mysys/my_memmem.c +++ b/mysys/my_memmem.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_messnc.c b/mysys/my_messnc.c index e2431959b7a..e108d2f1999 100644 --- a/mysys/my_messnc.c +++ b/mysys/my_messnc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2003 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_mkdir.c b/mysys/my_mkdir.c index 676c6c1cd51..73c9e391127 100644 --- a/mysys/my_mkdir.c +++ b/mysys/my_mkdir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_mmap.c b/mysys/my_mmap.c index 023a06fd896..cde09c4a28e 100644 --- a/mysys/my_mmap.c +++ b/mysys/my_mmap.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_netware.c b/mysys/my_netware.c index 5b5c39c0ac0..708b6a2947b 100644 --- a/mysys/my_netware.c +++ b/mysys/my_netware.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2004 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_new.cc b/mysys/my_new.cc index edc393a5b55..14d6788bfe2 100644 --- a/mysys/my_new.cc +++ b/mysys/my_new.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2001, 2003-2006 MySQL AB, 2009 Sun Microsystems, Inc. + Copyright (c) 2000, 2001, 2003-2005 MySQL AB, 2009 Sun Microsystems, Inc. Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/mysys/my_once.c b/mysys/my_once.c index b6f6656fce2..274c1bf56d8 100644 --- a/mysys/my_once.c +++ b/mysys/my_once.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002, 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_open.c b/mysys/my_open.c index 9060bb404e8..719ee8a89ac 100644 --- a/mysys/my_open.c +++ b/mysys/my_open.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_pthread.c b/mysys/my_pthread.c index aba3e47d754..a61a58038c1 100644 --- a/mysys/my_pthread.c +++ b/mysys/my_pthread.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_quick.c b/mysys/my_quick.c index 0ba20a5bdee..262c8738512 100644 --- a/mysys/my_quick.c +++ b/mysys/my_quick.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_read.c b/mysys/my_read.c index 0c302d5b227..17106b15d2d 100644 --- a/mysys/my_read.c +++ b/mysys/my_read.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2002, 2004, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_realloc.c b/mysys/my_realloc.c index a55282e03a0..198cc398477 100644 --- a/mysys/my_realloc.c +++ b/mysys/my_realloc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_rename.c b/mysys/my_rename.c index 39e6056a9e4..19b49ee88ae 100644 --- a/mysys/my_rename.c +++ b/mysys/my_rename.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_sleep.c b/mysys/my_sleep.c index 87170e4af41..18559fb5b9b 100644 --- a/mysys/my_sleep.c +++ b/mysys/my_sleep.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_static.h b/mysys/my_static.h index 90168b099a8..4d1a493bca1 100644 --- a/mysys/my_static.h +++ b/mysys/my_static.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002-2004, 2007, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_symlink2.c b/mysys/my_symlink2.c index 7c3ddbb911c..15d5cee8c63 100644 --- a/mysys/my_symlink2.c +++ b/mysys/my_symlink2.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_vle.c b/mysys/my_vle.c index 09f297eb553..0ab288eedec 100644 --- a/mysys/my_vle.c +++ b/mysys/my_vle.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/mysys/my_windac.c b/mysys/my_windac.c index f846853f7be..7d3c85225a0 100644 --- a/mysys/my_windac.c +++ b/mysys/my_windac.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2005 MySQL AB +/* Copyright (c) 2000-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/my_winthread.c b/mysys/my_winthread.c index 611307f5f34..0afbd6558ea 100644 --- a/mysys/my_winthread.c +++ b/mysys/my_winthread.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2001, 2005-2007 MySQL AB, 2009 Sun Microsystems, Inc. + Copyright (c) 2000, 2001, 2005, 2007 MySQL AB, 2009 Sun Microsystems, Inc. Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/mysys/my_write.c b/mysys/my_write.c index d0a59a605b6..a66795165a3 100644 --- a/mysys/my_write.c +++ b/mysys/my_write.c @@ -1,6 +1,5 @@ /* - Copyright (c) 2000, 2001, 2004-2007 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/mysys_priv.h b/mysys/mysys_priv.h index 6e0959ae08c..8637fcae626 100644 --- a/mysys/mysys_priv.h +++ b/mysys/mysys_priv.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2004, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/ptr_cmp.c b/mysys/ptr_cmp.c index 24ab6a1ea9c..d6b2edcee5d 100644 --- a/mysys/ptr_cmp.c +++ b/mysys/ptr_cmp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2004, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/queues.c b/mysys/queues.c index 9c85e493141..5f2f03175ef 100644 --- a/mysys/queues.c +++ b/mysys/queues.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2005 MySQL AB +/* Copyright (c) 2000-2003, 2005-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/rijndael.c b/mysys/rijndael.c index 2b12753c4e5..b668aff7c39 100644 --- a/mysys/rijndael.c +++ b/mysys/rijndael.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2004 MySQL AB +/* Copyright (c) 2002, 2004, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/stacktrace.c b/mysys/stacktrace.c index 8ef98f197b8..a18af229b08 100644 --- a/mysys/stacktrace.c +++ b/mysys/stacktrace.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/test_charset.c b/mysys/test_charset.c index d867b49304e..93f93f26399 100644 --- a/mysys/test_charset.c +++ b/mysys/test_charset.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/test_dir.c b/mysys/test_dir.c index 54e6c99e21e..a1d2d53236b 100644 --- a/mysys/test_dir.c +++ b/mysys/test_dir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/test_fn.c b/mysys/test_fn.c index 249cc878390..d8037b71197 100644 --- a/mysys/test_fn.c +++ b/mysys/test_fn.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2004 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/test_xml.c b/mysys/test_xml.c index 0cb10e1c8d9..a1c71ffab35 100644 --- a/mysys/test_xml.c +++ b/mysys/test_xml.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/testhash.c b/mysys/testhash.c index 2add2ebd2d7..6b30eabc163 100644 --- a/mysys/testhash.c +++ b/mysys/testhash.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/thr_alarm.c b/mysys/thr_alarm.c index e2fc54c487e..74bbf22aa86 100644 --- a/mysys/thr_alarm.c +++ b/mysys/thr_alarm.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/thr_rwlock.c b/mysys/thr_rwlock.c index 0aa4d3fc3c4..a45d2276d5e 100644 --- a/mysys/thr_rwlock.c +++ b/mysys/thr_rwlock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2002 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/tree.c b/mysys/tree.c index ef33f75b7c6..f2917d01fa1 100644 --- a/mysys/tree.c +++ b/mysys/tree.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/mysys/trie.c b/mysys/trie.c index 5738b9b866b..3297f99ff55 100644 --- a/mysys/trie.c +++ b/mysys/trie.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/netware/mysql_fix_privilege_tables.pl b/netware/mysql_fix_privilege_tables.pl index e40b4158e1c..c0fe95ae196 100644 --- a/netware/mysql_fix_privilege_tables.pl +++ b/netware/mysql_fix_privilege_tables.pl @@ -1,5 +1,5 @@ #----------------------------------------------------------------------------- -# Copyright (C) 2002 MySQL AB +# Copyright (c) 2002-2004 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/netware/mysql_secure_installation.pl b/netware/mysql_secure_installation.pl index 8550f0e6d6e..1c4d07ed4b0 100644 --- a/netware/mysql_secure_installation.pl +++ b/netware/mysql_secure_installation.pl @@ -1,5 +1,5 @@ #----------------------------------------------------------------------------- -# Copyright (C) 2002 MySQL AB and Jeremy Cole +# Copyright (c) 2002, 2003 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/plugin/daemon_example/daemon_example.cc b/plugin/daemon_example/daemon_example.cc index af585bb4302..1b5b952399e 100644 --- a/plugin/daemon_example/daemon_example.cc +++ b/plugin/daemon_example/daemon_example.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2006 MySQL AB +/* Copyright (c) 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/plugin/fulltext/Makefile.am b/plugin/fulltext/Makefile.am index 343416072dd..ed9c209e00d 100644 --- a/plugin/fulltext/Makefile.am +++ b/plugin/fulltext/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2005-2006 MySQL AB +# Copyright (c) 2005-2008 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index f0db25be79a..de566a81ad9 100755 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2006 MySQL AB +# Copyright (c) 2006-2008 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/comp_sql.c b/scripts/comp_sql.c index 88e88e632b6..88a3c08216a 100644 --- a/scripts/comp_sql.c +++ b/scripts/comp_sql.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh index 2ccd4f51b69..8c86c179bcd 100644 --- a/scripts/make_binary_distribution.sh +++ b/scripts/make_binary_distribution.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/mysql_fix_privilege_tables.sh b/scripts/mysql_fix_privilege_tables.sh index 3b179957932..24e745e42dd 100644 --- a/scripts/mysql_fix_privilege_tables.sh +++ b/scripts/mysql_fix_privilege_tables.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 2000-2006 MySQL AB +# Copyright (c) 2000-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/mysql_install_db.pl.in b/scripts/mysql_install_db.pl.in index 12cd6a21ad1..b47a6045fc6 100644 --- a/scripts/mysql_install_db.pl.in +++ b/scripts/mysql_install_db.pl.in @@ -1,7 +1,7 @@ #!/usr/bin/perl # -*- cperl -*- # -# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/mysqlbug.sh b/scripts/mysqlbug.sh index 64804b5de19..4291f60bd36 100644 --- a/scripts/mysqlbug.sh +++ b/scripts/mysqlbug.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 2000-2002, 2004 MySQL AB +# Copyright (c) 2000-2002, 2004, 2006, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/scripts/mysqld_multi.sh b/scripts/mysqld_multi.sh index 5bf59ae27be..1aa4fdb09a3 100644 --- a/scripts/mysqld_multi.sh +++ b/scripts/mysqld_multi.sh @@ -1,6 +1,6 @@ #!/usr/bin/perl -# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/server-tools/CMakeLists.txt b/server-tools/CMakeLists.txt index 3f02ba88f1d..7e0fb98a30a 100644 --- a/server-tools/CMakeLists.txt +++ b/server-tools/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2006 MySQL AB +# Copyright (c) 2006, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/CMakeLists.txt b/server-tools/instance-manager/CMakeLists.txt index 2b9bce56ff7..8d659910820 100755 --- a/server-tools/instance-manager/CMakeLists.txt +++ b/server-tools/instance-manager/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2006 MySQL AB +# Copyright (c) 2006, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/IMService.cpp b/server-tools/instance-manager/IMService.cpp index feccaadbecc..b8e4d4b0f12 100644 --- a/server-tools/instance-manager/IMService.cpp +++ b/server-tools/instance-manager/IMService.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/IMService.h b/server-tools/instance-manager/IMService.h index aceafb2fca6..7557e5fbeda 100644 --- a/server-tools/instance-manager/IMService.h +++ b/server-tools/instance-manager/IMService.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/Makefile.am b/server-tools/instance-manager/Makefile.am index 19c4ac8de19..0f514cbf90f 100644 --- a/server-tools/instance-manager/Makefile.am +++ b/server-tools/instance-manager/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2003-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/WindowsService.cpp b/server-tools/instance-manager/WindowsService.cpp index 14795e2225a..09cb3d6f771 100644 --- a/server-tools/instance-manager/WindowsService.cpp +++ b/server-tools/instance-manager/WindowsService.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/WindowsService.h b/server-tools/instance-manager/WindowsService.h index 02a499e5f0c..c45bc5c2ead 100644 --- a/server-tools/instance-manager/WindowsService.h +++ b/server-tools/instance-manager/WindowsService.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/angel.cc b/server-tools/instance-manager/angel.cc index 64515c8498c..1aaa1f3d224 100644 --- a/server-tools/instance-manager/angel.cc +++ b/server-tools/instance-manager/angel.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2006 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/angel.h b/server-tools/instance-manager/angel.h index db21c250972..c8da39a70a3 100644 --- a/server-tools/instance-manager/angel.h +++ b/server-tools/instance-manager/angel.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2006 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/buffer.h b/server-tools/instance-manager/buffer.h index 3bd7a714437..2ac801bdabb 100644 --- a/server-tools/instance-manager/buffer.h +++ b/server-tools/instance-manager/buffer.h @@ -1,6 +1,6 @@ #ifndef INCLUDES_MYSQL_INSTANCE_MANAGER_BUFFER_H #define INCLUDES_MYSQL_INSTANCE_MANAGER_BUFFER_H -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/command.cc b/server-tools/instance-manager/command.cc index ba84285ead2..118b2094c7f 100644 --- a/server-tools/instance-manager/command.cc +++ b/server-tools/instance-manager/command.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/command.h b/server-tools/instance-manager/command.h index 25d8c9849e8..146aaa8dd77 100644 --- a/server-tools/instance-manager/command.h +++ b/server-tools/instance-manager/command.h @@ -1,6 +1,6 @@ #ifndef INCLUDES_MYSQL_INSTANCE_MANAGER_COMMAND_H #define INCLUDES_MYSQL_INSTANCE_MANAGER_COMMAND_H -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/commands.h b/server-tools/instance-manager/commands.h index 5c2b2f9bbb7..65ab3311437 100644 --- a/server-tools/instance-manager/commands.h +++ b/server-tools/instance-manager/commands.h @@ -1,6 +1,6 @@ #ifndef INCLUDES_MYSQL_INSTANCE_MANAGER_COMMANDS_H #define INCLUDES_MYSQL_INSTANCE_MANAGER_COMMANDS_H -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/guardian.cc b/server-tools/instance-manager/guardian.cc index b49b0ec0a00..d5511b3db47 100644 --- a/server-tools/instance-manager/guardian.cc +++ b/server-tools/instance-manager/guardian.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/guardian.h b/server-tools/instance-manager/guardian.h index d78058a6fc5..3a622bd9d9b 100644 --- a/server-tools/instance-manager/guardian.h +++ b/server-tools/instance-manager/guardian.h @@ -1,6 +1,6 @@ #ifndef INCLUDES_MYSQL_INSTANCE_MANAGER_GUARDIAN_H #define INCLUDES_MYSQL_INSTANCE_MANAGER_GUARDIAN_H -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/instance.h b/server-tools/instance-manager/instance.h index aa9c923cba1..b3da78977c4 100644 --- a/server-tools/instance-manager/instance.h +++ b/server-tools/instance-manager/instance.h @@ -1,6 +1,6 @@ #ifndef INCLUDES_MYSQL_INSTANCE_MANAGER_INSTANCE_H #define INCLUDES_MYSQL_INSTANCE_MANAGER_INSTANCE_H -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/instance_map.h b/server-tools/instance-manager/instance_map.h index af2f1868195..9cb7b9370ed 100644 --- a/server-tools/instance-manager/instance_map.h +++ b/server-tools/instance-manager/instance_map.h @@ -1,6 +1,6 @@ #ifndef INCLUDES_MYSQL_INSTANCE_MANAGER_INSTANCE_MAP_H #define INCLUDES_MYSQL_INSTANCE_MANAGER_INSTANCE_MAP_H -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/instance_options.h b/server-tools/instance-manager/instance_options.h index b0503815036..e7113b43a71 100644 --- a/server-tools/instance-manager/instance_options.h +++ b/server-tools/instance-manager/instance_options.h @@ -1,6 +1,6 @@ #ifndef INCLUDES_MYSQL_INSTANCE_MANAGER_INSTANCE_OPTIONS_H #define INCLUDES_MYSQL_INSTANCE_MANAGER_INSTANCE_OPTIONS_H -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/listener.h b/server-tools/instance-manager/listener.h index 964fb361fb5..8b70588a467 100644 --- a/server-tools/instance-manager/listener.h +++ b/server-tools/instance-manager/listener.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2006 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/log.cc b/server-tools/instance-manager/log.cc index 9f276523e49..9b049951fd7 100644 --- a/server-tools/instance-manager/log.cc +++ b/server-tools/instance-manager/log.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2006 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/manager.cc b/server-tools/instance-manager/manager.cc index 792461e41a9..a59126569fc 100644 --- a/server-tools/instance-manager/manager.cc +++ b/server-tools/instance-manager/manager.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2006 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/manager.h b/server-tools/instance-manager/manager.h index e6956884603..826318c44f4 100644 --- a/server-tools/instance-manager/manager.h +++ b/server-tools/instance-manager/manager.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2006 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/mysql_manager_error.h b/server-tools/instance-manager/mysql_manager_error.h index e50e5d24f6d..39907bfe913 100644 --- a/server-tools/instance-manager/mysql_manager_error.h +++ b/server-tools/instance-manager/mysql_manager_error.h @@ -1,6 +1,6 @@ #ifndef INCLUDES_MYSQL_INSTANCE_MANAGER_MYSQL_MANAGER_ERROR_H #define INCLUDES_MYSQL_INSTANCE_MANAGER_MYSQL_MANAGER_ERROR_H -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/mysqlmanager.cc b/server-tools/instance-manager/mysqlmanager.cc index 276d1ca3b49..fc3e7578624 100644 --- a/server-tools/instance-manager/mysqlmanager.cc +++ b/server-tools/instance-manager/mysqlmanager.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2006 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/parse_output.h b/server-tools/instance-manager/parse_output.h index 41618f643a3..65c2e5a7e32 100644 --- a/server-tools/instance-manager/parse_output.h +++ b/server-tools/instance-manager/parse_output.h @@ -1,6 +1,6 @@ #ifndef INCLUDES_MYSQL_INSTANCE_MANAGER_PARSE_OUTPUT_H #define INCLUDES_MYSQL_INSTANCE_MANAGER_PARSE_OUTPUT_H -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/portability.h b/server-tools/instance-manager/portability.h index 990e6140a9e..6a824d8a31a 100644 --- a/server-tools/instance-manager/portability.h +++ b/server-tools/instance-manager/portability.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2006 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/priv.cc b/server-tools/instance-manager/priv.cc index 74263934924..85088517033 100644 --- a/server-tools/instance-manager/priv.cc +++ b/server-tools/instance-manager/priv.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2006 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/priv.h b/server-tools/instance-manager/priv.h index 1c2124c0e77..d24e891ede7 100644 --- a/server-tools/instance-manager/priv.h +++ b/server-tools/instance-manager/priv.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2006 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/protocol.h b/server-tools/instance-manager/protocol.h index b06ae4dfdb2..e7bd72e3dc3 100644 --- a/server-tools/instance-manager/protocol.h +++ b/server-tools/instance-manager/protocol.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2006 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/thread_registry.cc b/server-tools/instance-manager/thread_registry.cc index 489caa0aaa8..39e21aed7ed 100644 --- a/server-tools/instance-manager/thread_registry.cc +++ b/server-tools/instance-manager/thread_registry.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2006 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/server-tools/instance-manager/thread_registry.h b/server-tools/instance-manager/thread_registry.h index d04c8442e44..cf83eff5c21 100644 --- a/server-tools/instance-manager/thread_registry.h +++ b/server-tools/instance-manager/thread_registry.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2006 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql-common/pack.c b/sql-common/pack.c index 7ff89471b45..ffaf6a4d67d 100644 --- a/sql-common/pack.c +++ b/sql-common/pack.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/Makefile.am b/sql/Makefile.am index 6c2e7079a51..149fc2ab673 100644 --- a/sql/Makefile.am +++ b/sql/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/sql/custom_conf.h b/sql/custom_conf.h index 137b7e9eef2..c3b3e2a9434 100644 --- a/sql/custom_conf.h +++ b/sql/custom_conf.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/des_key_file.cc b/sql/des_key_file.cc index 317cb237360..e6fc2d8e20e 100644 --- a/sql/des_key_file.cc +++ b/sql/des_key_file.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2003, 2005 MySQL AB +/* Copyright (c) 2001-2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/discover.cc b/sql/discover.cc index 56dc00cc5c4..e31ca281bee 100644 --- a/sql/discover.cc +++ b/sql/discover.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/event_data_objects.h b/sql/event_data_objects.h index e32077b9c97..6464765a143 100644 --- a/sql/event_data_objects.h +++ b/sql/event_data_objects.h @@ -1,6 +1,6 @@ #ifndef _EVENT_DATA_OBJECTS_H_ #define _EVENT_DATA_OBJECTS_H_ -/* Copyright (C) 2004-2006 MySQL AB +/* Copyright (c) 2004-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/event_queue.cc b/sql/event_queue.cc index 04d4f858b43..d2bd1613eed 100644 --- a/sql/event_queue.cc +++ b/sql/event_queue.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2006 MySQL AB +/* Copyright (c) 2004-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/event_queue.h b/sql/event_queue.h index 2870ecb4d0b..6a098993e3d 100644 --- a/sql/event_queue.h +++ b/sql/event_queue.h @@ -1,6 +1,6 @@ #ifndef _EVENT_QUEUE_H_ #define _EVENT_QUEUE_H_ -/* Copyright (C) 2004-2006 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/event_scheduler.cc b/sql/event_scheduler.cc index d217d8d76cd..65aa1c81aea 100755 --- a/sql/event_scheduler.cc +++ b/sql/event_scheduler.cc @@ -1,6 +1,5 @@ /* - Copyright (c) 2006, 2007 MySQL AB, 2008-2010 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/event_scheduler.h b/sql/event_scheduler.h index 0be93a65d33..9cfb75e4590 100644 --- a/sql/event_scheduler.h +++ b/sql/event_scheduler.h @@ -1,6 +1,6 @@ #ifndef _EVENT_SCHEDULER_H_ #define _EVENT_SCHEDULER_H_ -/* Copyright (C) 2004-2006 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/events.h b/sql/events.h index 2bc87517748..b5a1d8879d6 100644 --- a/sql/events.h +++ b/sql/events.h @@ -1,6 +1,6 @@ #ifndef _EVENT_H_ #define _EVENT_H_ -/* Copyright (C) 2004-2006 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/field.cc b/sql/field.cc index 90029c12f0b..ea31e941cfe 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/field.h b/sql/field.h index cc709bc0c9c..01e97650c56 100644 --- a/sql/field.h +++ b/sql/field.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/field_conv.cc b/sql/field_conv.cc index b97061be147..3c60bca74b9 100644 --- a/sql/field_conv.cc +++ b/sql/field_conv.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/frm_crypt.cc b/sql/frm_crypt.cc index 590205e83ab..702bdce2c82 100644 --- a/sql/frm_crypt.cc +++ b/sql/frm_crypt.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/gstream.cc b/sql/gstream.cc index 25bf599ff4e..9e556627da3 100644 --- a/sql/gstream.cc +++ b/sql/gstream.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2002, 2004-2007 MySQL AB, 2009 Sun Microsystems, Inc. + Copyright (c) 2002, 2004, 2005, 2007 MySQL AB, 2009 Sun Microsystems, Inc. Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/sql/gstream.h b/sql/gstream.h index 1ef90ad5bf0..6372c4ad670 100644 --- a/sql/gstream.h +++ b/sql/gstream.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2004 MySQL AB +/* Copyright (c) 2000-2004, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/ha_ndbcluster.h b/sql/ha_ndbcluster.h index a17323d3fd6..93a9fba56a9 100644 --- a/sql/ha_ndbcluster.h +++ b/sql/ha_ndbcluster.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/ha_ndbcluster_binlog.cc b/sql/ha_ndbcluster_binlog.cc index 6d2a6f06c99..66530a64bd7 100644 --- a/sql/ha_ndbcluster_binlog.cc +++ b/sql/ha_ndbcluster_binlog.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/ha_ndbcluster_binlog.h b/sql/ha_ndbcluster_binlog.h index 1cad643e5ec..a05a65d9e7c 100644 --- a/sql/ha_ndbcluster_binlog.h +++ b/sql/ha_ndbcluster_binlog.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/ha_ndbcluster_cond.cc b/sql/ha_ndbcluster_cond.cc index bb35211944b..26e845ad85d 100644 --- a/sql/ha_ndbcluster_cond.cc +++ b/sql/ha_ndbcluster_cond.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2003, 2007, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/ha_ndbcluster_cond.h b/sql/ha_ndbcluster_cond.h index 4401a93c9e1..d494d46a4fe 100644 --- a/sql/ha_ndbcluster_cond.h +++ b/sql/ha_ndbcluster_cond.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2007 MySQL AB +/* Copyright (c) 2000-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/ha_ndbcluster_tables.h b/sql/ha_ndbcluster_tables.h index c6bc8f577f8..91cf9a2ebb8 100644 --- a/sql/ha_ndbcluster_tables.h +++ b/sql/ha_ndbcluster_tables.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/handler.cc b/sql/handler.cc index 4f5c613a6a4..d6b885e05d2 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/hash_filo.cc b/sql/hash_filo.cc index 9303120e18a..18e3806486b 100644 --- a/sql/hash_filo.cc +++ b/sql/hash_filo.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2005 MySQL AB +/* Copyright (c) 2000, 2001, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/hash_filo.h b/sql/hash_filo.h index ab13d338695..24b90e50142 100644 --- a/sql/hash_filo.h +++ b/sql/hash_filo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003, 2005 MySQL AB +/* Copyright (c) 2000-2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/hostname.cc b/sql/hostname.cc index 38316a8ee19..ba211667bb1 100644 --- a/sql/hostname.cc +++ b/sql/hostname.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/init.cc b/sql/init.cc index afda36b6b9d..f9bd5bf6a27 100644 --- a/sql/init.cc +++ b/sql/init.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2005 MySQL AB +/* Copyright (c) 2000-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h index b185bf02790..a7adc62b0f8 100644 --- a/sql/item_cmpfunc.h +++ b/sql/item_cmpfunc.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/item_func.h b/sql/item_func.h index d769ceb0179..f63a952c0bf 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/item_row.cc b/sql/item_row.cc index 9bf9d78a3c2..1db71da1a21 100644 --- a/sql/item_row.cc +++ b/sql/item_row.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 27483ede032..25473815b9c 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index 2c91d0573c1..d0a011accc4 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/item_xmlfunc.cc b/sql/item_xmlfunc.cc index 4140fcfb11c..ef2cd8fa2c1 100644 --- a/sql/item_xmlfunc.cc +++ b/sql/item_xmlfunc.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/item_xmlfunc.h b/sql/item_xmlfunc.h index dadbb5ccf42..02f5e698449 100644 --- a/sql/item_xmlfunc.h +++ b/sql/item_xmlfunc.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2005 MySQL AB +/* Copyright (c) 2000-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/lex_symbol.h b/sql/lex_symbol.h index 000c0709071..34af52f1feb 100644 --- a/sql/lex_symbol.h +++ b/sql/lex_symbol.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2004 MySQL AB +/* Copyright (c) 2000, 2001, 2004, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/log.cc b/sql/log.cc index 93dd70b33c5..937b25284bd 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/log_event_old.h b/sql/log_event_old.h index 719802a80fb..0cc8d6189bf 100644 --- a/sql/log_event_old.h +++ b/sql/log_event_old.h @@ -1,4 +1,4 @@ -/* Copyright 2007 MySQL AB. All rights reserved. +/* Copyright (c) 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/mem_root_array.h b/sql/mem_root_array.h index 5ce4dcb584d..881b1f49bf2 100644 --- a/sql/mem_root_array.h +++ b/sql/mem_root_array.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/mf_iocache.cc b/sql/mf_iocache.cc index 8c2d16c40b0..314794729c6 100644 --- a/sql/mf_iocache.cc +++ b/sql/mf_iocache.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2004 MySQL AB +/* Copyright (c) 2000-2004, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/my_lock.c b/sql/my_lock.c index f66d7282f72..b8c3b9e1991 100644 --- a/sql/my_lock.c +++ b/sql/my_lock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2003, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index 903fbcf019c..f0a5d806d10 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/mysqld.cc b/sql/mysqld.cc index b7da50606dd..024ad659d89 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/mysqld_suffix.h b/sql/mysqld_suffix.h index 654d7cf88c1..c6324987bdc 100644 --- a/sql/mysqld_suffix.h +++ b/sql/mysqld_suffix.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2004 MySQL AB +/* Copyright (c) 2000-2004, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/opt_range.cc b/sql/opt_range.cc index ae6878c6756..0efa5c5a819 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/partition_element.h b/sql/partition_element.h index 905bc38165b..d43782a7098 100644 --- a/sql/partition_element.h +++ b/sql/partition_element.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2006 MySQL AB +/* Copyright (c) 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/password.c b/sql/password.c index e029ba51fc4..f6b8d19f22a 100644 --- a/sql/password.c +++ b/sql/password.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/procedure.cc b/sql/procedure.cc index c993ba976ac..a801528c115 100644 --- a/sql/procedure.cc +++ b/sql/procedure.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002, 2004-2005 MySQL AB +/* Copyright (c) 2000-2002, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/procedure.h b/sql/procedure.h index ceb586766b1..fee38f6abf2 100644 --- a/sql/procedure.h +++ b/sql/procedure.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2005 MySQL AB +/* Copyright (c) 2000, 2002-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/records.cc b/sql/records.cc index da876f7554c..2484f091182 100644 --- a/sql/records.cc +++ b/sql/records.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/repl_failsafe.h b/sql/repl_failsafe.h index 6ff78067aca..1a3e9c09fc9 100644 --- a/sql/repl_failsafe.h +++ b/sql/repl_failsafe.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2005 MySQL AB & Sasha +/* Copyright (c) 2001-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/rpl_filter.h b/sql/rpl_filter.h index ff7e4081bb1..4abe23d9207 100644 --- a/sql/rpl_filter.h +++ b/sql/rpl_filter.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/rpl_injector.h b/sql/rpl_injector.h index 4ece092c5b8..88389c7f582 100644 --- a/sql/rpl_injector.h +++ b/sql/rpl_injector.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2006 MySQL AB +/* Copyright (c) 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/rpl_record_old.h b/sql/rpl_record_old.h index bdaedd56741..2a3a640e97c 100644 --- a/sql/rpl_record_old.h +++ b/sql/rpl_record_old.h @@ -1,4 +1,4 @@ -/* Copyright 2007 MySQL AB. All rights reserved. +/* Copyright (c) 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc index 904b5533f3b..85aab7ba4cb 100644 --- a/sql/rpl_rli.cc +++ b/sql/rpl_rli.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/rpl_rli.h b/sql/rpl_rli.h index 959105b16e0..66be21d3db4 100644 --- a/sql/rpl_rli.h +++ b/sql/rpl_rli.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/rpl_tblmap.h b/sql/rpl_tblmap.h index 3b5b10be580..b4f54450d7b 100644 --- a/sql/rpl_tblmap.h +++ b/sql/rpl_tblmap.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/rpl_utility.cc b/sql/rpl_utility.cc index 5f2b5cbf86b..d8c975fba90 100644 --- a/sql/rpl_utility.cc +++ b/sql/rpl_utility.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/rpl_utility.h b/sql/rpl_utility.h index b2577643add..e5b37b9bd16 100644 --- a/sql/rpl_utility.h +++ b/sql/rpl_utility.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/set_var.cc b/sql/set_var.cc index 269eea844aa..f4035ed0cde 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/share/charsets/Index.xml b/sql/share/charsets/Index.xml index 07e7e37b798..0c430cd2054 100644 --- a/sql/share/charsets/Index.xml +++ b/sql/share/charsets/Index.xml @@ -3,7 +3,7 @@ - Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/share/charsets/armscii8.xml b/sql/share/charsets/armscii8.xml index 714e57bb12e..78b3861a667 100644 --- a/sql/share/charsets/armscii8.xml +++ b/sql/share/charsets/armscii8.xml @@ -3,7 +3,7 @@ - Copyright (C) 2003 MySQL AB + Copyright (c) 2003, 2004 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/share/charsets/ascii.xml b/sql/share/charsets/ascii.xml index f4fb79ac632..9ad240bde55 100644 --- a/sql/share/charsets/ascii.xml +++ b/sql/share/charsets/ascii.xml @@ -3,7 +3,7 @@ - Copyright (C) 2003 MySQL AB + Copyright (c) 2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/share/charsets/cp1250.xml b/sql/share/charsets/cp1250.xml index bd0d7d3f3c0..ae51b92675a 100644 --- a/sql/share/charsets/cp1250.xml +++ b/sql/share/charsets/cp1250.xml @@ -3,7 +3,7 @@ - Copyright (C) 2003 MySQL AB + Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/share/charsets/cp852.xml b/sql/share/charsets/cp852.xml index 25b622d2a4b..e1a4a069820 100644 --- a/sql/share/charsets/cp852.xml +++ b/sql/share/charsets/cp852.xml @@ -3,7 +3,7 @@ - Copyright (C) 2003 MySQL AB + Copyright (c) 2003, 2004 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/share/charsets/hebrew.xml b/sql/share/charsets/hebrew.xml index 20d68487301..221dc7a8ae6 100644 --- a/sql/share/charsets/hebrew.xml +++ b/sql/share/charsets/hebrew.xml @@ -3,7 +3,7 @@ - Copyright (C) 2003 MySQL AB + Copyright (c) 2003, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/share/charsets/latin1.xml b/sql/share/charsets/latin1.xml index 88ceff440d5..e989a0844b0 100644 --- a/sql/share/charsets/latin1.xml +++ b/sql/share/charsets/latin1.xml @@ -3,7 +3,7 @@ - Copyright (C) 2003 MySQL AB + Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/share/charsets/latin2.xml b/sql/share/charsets/latin2.xml index 6b887b927a4..5ff73547bd0 100644 --- a/sql/share/charsets/latin2.xml +++ b/sql/share/charsets/latin2.xml @@ -3,7 +3,7 @@ - Copyright (C) 2003 MySQL AB + Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/share/charsets/latin5.xml b/sql/share/charsets/latin5.xml index 9c23200a46d..ca2f0e0162f 100644 --- a/sql/share/charsets/latin5.xml +++ b/sql/share/charsets/latin5.xml @@ -3,7 +3,7 @@ - Copyright (C) 2003 MySQL AB + Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/signal_handler.cc b/sql/signal_handler.cc index 121338c31d2..b11fd03e21c 100644 --- a/sql/signal_handler.cc +++ b/sql/signal_handler.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/slave.cc b/sql/slave.cc index 288077a6326..b2bcf37b761 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sp_cache.h b/sql/sp_cache.h index f4d44a1f29f..63fcf252d43 100644 --- a/sql/sp_cache.h +++ b/sql/sp_cache.h @@ -1,5 +1,5 @@ /* -*- C++ -*- */ -/* Copyright (C) 2002 MySQL AB +/* Copyright (c) 2002-2005, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sp_head.cc b/sql/sp_head.cc index 054fc5e223e..4268c9370db 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sp_head.h b/sql/sp_head.h index a026ac47221..d632e9a7a04 100644 --- a/sql/sp_head.h +++ b/sql/sp_head.h @@ -1,6 +1,6 @@ /* -*- C++ -*- */ /* - Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sp_rcontext.h b/sql/sp_rcontext.h index 368a017da21..eb7a4d676d2 100644 --- a/sql/sp_rcontext.h +++ b/sql/sp_rcontext.h @@ -1,5 +1,5 @@ /* -*- C++ -*- */ -/* Copyright (C) 2002 MySQL AB +/* Copyright (c) 2002-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/spatial.cc b/sql/spatial.cc index 07f28855987..b1cfd0e5d87 100644 --- a/sql/spatial.cc +++ b/sql/spatial.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/spatial.h b/sql/spatial.h index 68a6c889615..80972421f83 100644 --- a/sql/spatial.h +++ b/sql/spatial.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 80662832140..17000e40b97 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_analyse.h b/sql/sql_analyse.h index 8807b40857e..87468f38492 100644 --- a/sql/sql_analyse.h +++ b/sql/sql_analyse.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003, 2005 MySQL AB +/* Copyright (c) 2000-2003, 2005-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_array.h b/sql/sql_array.h index e1b22921519..0d5d2cdec2b 100644 --- a/sql/sql_array.h +++ b/sql/sql_array.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_base.cc b/sql/sql_base.cc index b191e9592ff..09010587d24 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_bitmap.h b/sql/sql_bitmap.h index 97accefe8aa..b4b7e7025d9 100644 --- a/sql/sql_bitmap.h +++ b/sql/sql_bitmap.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc index cba7c876a4c..e6f97698703 100644 --- a/sql/sql_cache.cc +++ b/sql/sql_cache.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 0f6bd4c1954..80bd4eff457 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_class.h b/sql/sql_class.h index 5cdb005b517..4543f9ef7a2 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_client.cc b/sql/sql_client.cc index 032a2e26e3a..e6678791a83 100644 --- a/sql/sql_client.cc +++ b/sql/sql_client.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_cursor.h b/sql/sql_cursor.h index 1f19cbfdbcf..480b55c28e0 100644 --- a/sql/sql_cursor.h +++ b/sql/sql_cursor.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_db.cc b/sql/sql_db.cc index fe3aed5c8f0..d3178fa0b99 100644 --- a/sql/sql_db.cc +++ b/sql/sql_db.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc index 01e2fd10be9..d8be84d0a67 100644 --- a/sql/sql_derived.cc +++ b/sql/sql_derived.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_do.cc b/sql/sql_do.cc index 8406a9eaf45..9ea265908a2 100644 --- a/sql/sql_do.cc +++ b/sql/sql_do.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2006 MySQL AB +/* Copyright (c) 2000-2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_error.h b/sql/sql_error.h index f98264dce50..423e06fef52 100644 --- a/sql/sql_error.h +++ b/sql/sql_error.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 7e94e7e7df3..a59e3fd14e9 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index e171cf1c06d..78f0317b3fc 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_lex.h b/sql/sql_lex.h index 99cbd420607..0a054ced98a 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_list.cc b/sql/sql_list.cc index 49b649133d0..694daea3be0 100644 --- a/sql/sql_list.cc +++ b/sql/sql_list.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2003, 2005 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_load.cc b/sql/sql_load.cc index b736fa59c22..fb495d05d60 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_map.cc b/sql/sql_map.cc index 55f9b08d3fe..54f9cecd384 100644 --- a/sql/sql_map.cc +++ b/sql/sql_map.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2004-2005 MySQL AB +/* Copyright (c) 2000, 2001, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_map.h b/sql/sql_map.h index a1efba0da6f..fe602aa8771 100644 --- a/sql/sql_map.h +++ b/sql/sql_map.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2005 MySQL AB +/* Copyright (c) 2000, 2001, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index 41f2b00a256..d8db68fc863 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 2afd4085c51..ddfd5d3a755 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_profile.h b/sql/sql_profile.h index c59b342e502..fca17a60af6 100644 --- a/sql/sql_profile.h +++ b/sql/sql_profile.h @@ -1,6 +1,5 @@ /* - Copyright (c) 2007 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_repl.h b/sql/sql_repl.h index d5c9040f8dc..553f37e2f11 100644 --- a/sql/sql_repl.h +++ b/sql/sql_repl.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2006 MySQL AB & Sasha +/* Copyright (c) 2000-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_servers.h b/sql/sql_servers.h index 63c691893d1..08e9ac9852e 100644 --- a/sql/sql_servers.h +++ b/sql/sql_servers.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2006 MySQL AB +/* Copyright (c) 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_show.h b/sql/sql_show.h index 3a6cd158cb4..b5d6c0af7d3 100644 --- a/sql/sql_show.h +++ b/sql/sql_show.h @@ -1,6 +1,5 @@ /* - Copyright (c) 2005-2008 MySQL AB, 2008 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_sort.h b/sql/sql_sort.h index 1e9322f7f5b..a60447da2f6 100644 --- a/sql/sql_sort.h +++ b/sql/sql_sort.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_string.cc b/sql/sql_string.cc index 10bd3511cd2..f692014011c 100644 --- a/sql/sql_string.cc +++ b/sql/sql_string.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_trigger.cc b/sql/sql_trigger.cc index 3ad956cb3fe..75112b00879 100644 --- a/sql/sql_trigger.cc +++ b/sql/sql_trigger.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_udf.h b/sql/sql_udf.h index 4b8b492698e..6a858dbb2d0 100644 --- a/sql/sql_udf.h +++ b/sql/sql_udf.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2003-2006 MySQL AB +/* Copyright (c) 2000, 2001, 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_view.cc b/sql/sql_view.cc index 41521395757..b45cee000bb 100644 --- a/sql/sql_view.cc +++ b/sql/sql_view.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 7a6981f778a..64a7dd10058 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/table.cc b/sql/table.cc index 4577778285f..d221735e48e 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/table.h b/sql/table.h index 690abdff714..7dfb2ef084c 100644 --- a/sql/table.h +++ b/sql/table.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/tzfile.h b/sql/tzfile.h index 1ff82d62329..1c0f9195e1c 100644 --- a/sql/tzfile.h +++ b/sql/tzfile.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/sql/tztime.cc b/sql/tztime.cc index 81a80686de2..6f340f26d0e 100644 --- a/sql/tztime.cc +++ b/sql/tztime.cc @@ -1,5 +1,5 @@ /* - Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/archive/archive_test.c b/storage/archive/archive_test.c index a5b2d1dfcc9..961590c61a1 100644 --- a/storage/archive/archive_test.c +++ b/storage/archive/archive_test.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2006 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/archive/ha_archive.h b/storage/archive/ha_archive.h index ab630ed22fd..66c60840502 100644 --- a/storage/archive/ha_archive.h +++ b/storage/archive/ha_archive.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc index 7dd4f6b7149..980013029a9 100644 --- a/storage/federated/ha_federated.cc +++ b/storage/federated/ha_federated.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/_check.c b/storage/heap/_check.c index 08b6da62ae1..758e34e6c32 100644 --- a/storage/heap/_check.c +++ b/storage/heap/_check.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2006 MySQL AB +/* Copyright (c) 2000, 2002-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/_rectest.c b/storage/heap/_rectest.c index 068fedf719c..add2dc22eeb 100644 --- a/storage/heap/_rectest.c +++ b/storage/heap/_rectest.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/heapdef.h b/storage/heap/heapdef.h index 3fc94062303..744c52cc65a 100644 --- a/storage/heap/heapdef.h +++ b/storage/heap/heapdef.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002, 2004 MySQL AB +/* Copyright (c) 2000-2002, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_block.c b/storage/heap/hp_block.c index c622a9e52f8..cc9c67ceef3 100644 --- a/storage/heap/hp_block.c +++ b/storage/heap/hp_block.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002, 2004 MySQL AB +/* Copyright (c) 2000-2002, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_clear.c b/storage/heap/hp_clear.c index babfcbd6f41..2fffd121223 100644 --- a/storage/heap/hp_clear.c +++ b/storage/heap/hp_clear.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002, 2004, 2006 MySQL AB +/* Copyright (c) 2000-2002, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_close.c b/storage/heap/hp_close.c index d571815980c..eb0aa27f4f8 100644 --- a/storage/heap/hp_close.c +++ b/storage/heap/hp_close.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_delete.c b/storage/heap/hp_delete.c index 3090b60d611..adad77f505d 100644 --- a/storage/heap/hp_delete.c +++ b/storage/heap/hp_delete.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002, 2004-2007 MySQL AB +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_extra.c b/storage/heap/hp_extra.c index 9ff6bfb860a..57cca428ccc 100644 --- a/storage/heap/hp_extra.c +++ b/storage/heap/hp_extra.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2004 MySQL AB +/* Copyright (c) 2000, 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_open.c b/storage/heap/hp_open.c index 4d5ec6e27ac..f128332228a 100644 --- a/storage/heap/hp_open.c +++ b/storage/heap/hp_open.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2004, 2006 MySQL AB +/* Copyright (c) 2000-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_panic.c b/storage/heap/hp_panic.c index 9a2bd2c574e..7f539c2bcbf 100644 --- a/storage/heap/hp_panic.c +++ b/storage/heap/hp_panic.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_rename.c b/storage/heap/hp_rename.c index c2350450e2b..881edac33e1 100644 --- a/storage/heap/hp_rename.c +++ b/storage/heap/hp_rename.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_rfirst.c b/storage/heap/hp_rfirst.c index d0d2ec9b506..fb75f31cf7c 100644 --- a/storage/heap/hp_rfirst.c +++ b/storage/heap/hp_rfirst.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002, 2004 MySQL AB +/* Copyright (c) 2000-2002, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_rkey.c b/storage/heap/hp_rkey.c index 6eeac6acd7b..74d71b8da47 100644 --- a/storage/heap/hp_rkey.c +++ b/storage/heap/hp_rkey.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2004, 2006 MySQL AB +/* Copyright (c) 2000, 2002-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_rlast.c b/storage/heap/hp_rlast.c index 45ad7c21f49..9024f05242c 100644 --- a/storage/heap/hp_rlast.c +++ b/storage/heap/hp_rlast.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_rnext.c b/storage/heap/hp_rnext.c index 3d715f4e6d3..7ebcaac510d 100644 --- a/storage/heap/hp_rnext.c +++ b/storage/heap/hp_rnext.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000, 2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_rprev.c b/storage/heap/hp_rprev.c index 63bfffffba9..a12804613c5 100644 --- a/storage/heap/hp_rprev.c +++ b/storage/heap/hp_rprev.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_rrnd.c b/storage/heap/hp_rrnd.c index 3ac23d293f2..8aa1a309593 100644 --- a/storage/heap/hp_rrnd.c +++ b/storage/heap/hp_rrnd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002, 2004, 2006 MySQL AB +/* Copyright (c) 2000-2002, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_rsame.c b/storage/heap/hp_rsame.c index 1a3724672b6..06b49c4e568 100644 --- a/storage/heap/hp_rsame.c +++ b/storage/heap/hp_rsame.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_scan.c b/storage/heap/hp_scan.c index e8913e92c86..6b43300f8dc 100644 --- a/storage/heap/hp_scan.c +++ b/storage/heap/hp_scan.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_static.c b/storage/heap/hp_static.c index a501ba7e359..287f4194404 100644 --- a/storage/heap/hp_static.c +++ b/storage/heap/hp_static.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001 MySQL AB +/* Copyright (c) 2000, 2001, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_test1.c b/storage/heap/hp_test1.c index b1b55098a78..dcb26e7ff8d 100644 --- a/storage/heap/hp_test1.c +++ b/storage/heap/hp_test1.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003, 2006 MySQL AB +/* Copyright (c) 2000-2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/heap/hp_update.c b/storage/heap/hp_update.c index 7f469af3c96..2dd0139be87 100644 --- a/storage/heap/hp_update.c +++ b/storage/heap/hp_update.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002, 2004-2005 MySQL AB +/* Copyright (c) 2000-2002, 2004-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/ft_boolean_search.c b/storage/myisam/ft_boolean_search.c index 16cf2669c6d..2c6b81b2761 100644 --- a/storage/myisam/ft_boolean_search.c +++ b/storage/myisam/ft_boolean_search.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/ft_eval.c b/storage/myisam/ft_eval.c index de01510fdd7..537d6de8788 100644 --- a/storage/myisam/ft_eval.c +++ b/storage/myisam/ft_eval.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. diff --git a/storage/myisam/ft_eval.h b/storage/myisam/ft_eval.h index 9acc1a60d09..9f867dc5f27 100644 --- a/storage/myisam/ft_eval.h +++ b/storage/myisam/ft_eval.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB & Sergei A. Golubchik +/* Copyright (c) 2000-2002, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/ft_nlq_search.c b/storage/myisam/ft_nlq_search.c index c74451828a4..5b8ed711393 100644 --- a/storage/myisam/ft_nlq_search.c +++ b/storage/myisam/ft_nlq_search.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/ft_static.c b/storage/myisam/ft_static.c index 1b6c7458fd7..99462d842fe 100644 --- a/storage/myisam/ft_static.c +++ b/storage/myisam/ft_static.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2005 MySQL AB +/* Copyright (c) 2000-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/ft_stem.c b/storage/myisam/ft_stem.c index dfc132fcfa9..070bf1fe294 100644 --- a/storage/myisam/ft_stem.c +++ b/storage/myisam/ft_stem.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/ft_test1.c b/storage/myisam/ft_test1.c index b37935a0d7a..e9c59b241c3 100644 --- a/storage/myisam/ft_test1.c +++ b/storage/myisam/ft_test1.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002, 2004 MySQL AB +/* Copyright (c) 2000-2002, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/ft_test1.h b/storage/myisam/ft_test1.h index 4b466818460..803d34fd696 100644 --- a/storage/myisam/ft_test1.h +++ b/storage/myisam/ft_test1.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001 MySQL AB +/* Copyright (c) 2000, 2001, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/ft_update.c b/storage/myisam/ft_update.c index d1548e32870..fa3ad2b8fda 100644 --- a/storage/myisam/ft_update.c +++ b/storage/myisam/ft_update.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2004, 2006 MySQL AB +/* Copyright (c) 2000-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/ftbench/Ecompare.pl b/storage/myisam/ftbench/Ecompare.pl index 2c50ae9b9ce..b5c4950d4f7 100755 --- a/storage/myisam/ftbench/Ecompare.pl +++ b/storage/myisam/ftbench/Ecompare.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl -# Copyright (C) 2003 MySQL AB +# Copyright (c) 2003, 2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/ftbench/Ecreate.pl b/storage/myisam/ftbench/Ecreate.pl index 123ca729c31..4251c43388a 100755 --- a/storage/myisam/ftbench/Ecreate.pl +++ b/storage/myisam/ftbench/Ecreate.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl -# Copyright (C) 2003 MySQL AB +# Copyright (c) 2003, 2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/ftbench/Ereport.pl b/storage/myisam/ftbench/Ereport.pl index 2f63d7ea37a..f4d2dd5d271 100755 --- a/storage/myisam/ftbench/Ereport.pl +++ b/storage/myisam/ftbench/Ereport.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl -# Copyright (C) 2003 MySQL AB +# Copyright (c) 2003, 2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/ftbench/ft-test-run.sh b/storage/myisam/ftbench/ft-test-run.sh index 8726c263de9..1e822618eec 100755 --- a/storage/myisam/ftbench/ft-test-run.sh +++ b/storage/myisam/ftbench/ft-test-run.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2003 MySQL AB +# Copyright (c) 2003, 2005, 2006 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/myisam/mi_cache.c b/storage/myisam/mi_cache.c index d6dcc431a8d..d858f7f893a 100644 --- a/storage/myisam/mi_cache.c +++ b/storage/myisam/mi_cache.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_changed.c b/storage/myisam/mi_changed.c index 7422f995dd0..581412ffec7 100644 --- a/storage/myisam/mi_changed.c +++ b/storage/myisam/mi_changed.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001 MySQL AB +/* Copyright (c) 2000, 2001, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_checksum.c b/storage/myisam/mi_checksum.c index 1aa56e571e3..38218c86116 100644 --- a/storage/myisam/mi_checksum.c +++ b/storage/myisam/mi_checksum.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2003-2004 MySQL AB +/* Copyright (c) 2000, 2001, 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_info.c b/storage/myisam/mi_info.c index 91e7ca659e4..a2786d3ec42 100644 --- a/storage/myisam/mi_info.c +++ b/storage/myisam/mi_info.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2003-2004 MySQL AB +/* Copyright (c) 2000, 2001, 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_key.c b/storage/myisam/mi_key.c index 3f445ebf44d..ff03027e8cd 100644 --- a/storage/myisam/mi_key.c +++ b/storage/myisam/mi_key.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2006 MySQL AB +/* Copyright (c) 2000-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_keycache.c b/storage/myisam/mi_keycache.c index 5cf3fede1ae..c37e8b1e80f 100644 --- a/storage/myisam/mi_keycache.c +++ b/storage/myisam/mi_keycache.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_log.c b/storage/myisam/mi_log.c index 8b9ca038fec..674c08bae6e 100644 --- a/storage/myisam/mi_log.c +++ b/storage/myisam/mi_log.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2004 MySQL AB +/* Copyright (c) 2000, 2001, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_panic.c b/storage/myisam/mi_panic.c index 74c93761b61..378a2df50de 100644 --- a/storage/myisam/mi_panic.c +++ b/storage/myisam/mi_panic.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2003 MySQL AB +/* Copyright (c) 2000, 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_rename.c b/storage/myisam/mi_rename.c index 51669b0caa6..af9eb921558 100644 --- a/storage/myisam/mi_rename.c +++ b/storage/myisam/mi_rename.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2004 MySQL AB +/* Copyright (c) 2000, 2001, 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_rfirst.c b/storage/myisam/mi_rfirst.c index 5a8b27b3e85..b150c8c2375 100644 --- a/storage/myisam/mi_rfirst.c +++ b/storage/myisam/mi_rfirst.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001 MySQL AB +/* Copyright (c) 2000, 2001, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_rkey.c b/storage/myisam/mi_rkey.c index f1d35810d36..9d7a02bf6c7 100644 --- a/storage/myisam/mi_rkey.c +++ b/storage/myisam/mi_rkey.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2006 MySQL AB +/* Copyright (c) 2000-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_rlast.c b/storage/myisam/mi_rlast.c index 07be619617f..a0585c8d1f0 100644 --- a/storage/myisam/mi_rlast.c +++ b/storage/myisam/mi_rlast.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001 MySQL AB +/* Copyright (c) 2000, 2001, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_rnext_same.c b/storage/myisam/mi_rnext_same.c index 1892fe3e1e0..2c6a4fc0361 100644 --- a/storage/myisam/mi_rnext_same.c +++ b/storage/myisam/mi_rnext_same.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2006 MySQL AB +/* Copyright (c) 2000-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_rprev.c b/storage/myisam/mi_rprev.c index d1407012590..8ff2aa5825e 100644 --- a/storage/myisam/mi_rprev.c +++ b/storage/myisam/mi_rprev.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2004 MySQL AB +/* Copyright (c) 2000, 2001, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_rrnd.c b/storage/myisam/mi_rrnd.c index 211e5fa51cc..2d9ebe940b9 100644 --- a/storage/myisam/mi_rrnd.c +++ b/storage/myisam/mi_rrnd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002, 2004 MySQL AB +/* Copyright (c) 2000-2002, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_rsame.c b/storage/myisam/mi_rsame.c index 8093498483f..2d1c0b17f95 100644 --- a/storage/myisam/mi_rsame.c +++ b/storage/myisam/mi_rsame.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2005 MySQL AB +/* Copyright (c) 2000, 2001, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_rsamepos.c b/storage/myisam/mi_rsamepos.c index 6a1e462b686..2053b742549 100644 --- a/storage/myisam/mi_rsamepos.c +++ b/storage/myisam/mi_rsamepos.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2005 MySQL AB +/* Copyright (c) 2000, 2001, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_scan.c b/storage/myisam/mi_scan.c index a225b399660..3dbd8f80ca5 100644 --- a/storage/myisam/mi_scan.c +++ b/storage/myisam/mi_scan.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001 MySQL AB +/* Copyright (c) 2000, 2001, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_statrec.c b/storage/myisam/mi_statrec.c index e3771560c01..7b249dbbb19 100644 --- a/storage/myisam/mi_statrec.c +++ b/storage/myisam/mi_statrec.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002, 2004-2006 MySQL AB +/* Copyright (c) 2000-2002, 2004-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_test3.c b/storage/myisam/mi_test3.c index 5bdc33b8518..3d1e98cd06f 100644 --- a/storage/myisam/mi_test3.c +++ b/storage/myisam/mi_test3.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2004 MySQL AB +/* Copyright (c) 2000-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/mi_write.c b/storage/myisam/mi_write.c index 1bcf1b28ecf..ef2bd9de49e 100644 --- a/storage/myisam/mi_write.c +++ b/storage/myisam/mi_write.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/myisamchk.c b/storage/myisam/myisamchk.c index 8ab804cbaa2..282a02a08ee 100644 --- a/storage/myisam/myisamchk.c +++ b/storage/myisam/myisamchk.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/rt_index.h b/storage/myisam/rt_index.h index 20193a1725d..29d90416390 100644 --- a/storage/myisam/rt_index.h +++ b/storage/myisam/rt_index.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2004 MySQL AB & Ramil Kalimullin +/* Copyright (c) 2002, 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/rt_key.c b/storage/myisam/rt_key.c index fe59af3c605..8eae8bb0c99 100644 --- a/storage/myisam/rt_key.c +++ b/storage/myisam/rt_key.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB & Ramil Kalimullin +/* Copyright (c) 2000, 2002-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/rt_key.h b/storage/myisam/rt_key.h index 4b129aa18f8..2dc65c0f931 100644 --- a/storage/myisam/rt_key.h +++ b/storage/myisam/rt_key.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2004 MySQL AB & Ramil Kalimullin +/* Copyright (c) 2002, 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/rt_mbr.c b/storage/myisam/rt_mbr.c index deca23bbec7..5d8f17fdafa 100644 --- a/storage/myisam/rt_mbr.c +++ b/storage/myisam/rt_mbr.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2004, 2006 MySQL AB & Ramil Kalimullin +/* Copyright (c) 2002-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/rt_mbr.h b/storage/myisam/rt_mbr.h index d7ff9548e0d..9b766e9d423 100644 --- a/storage/myisam/rt_mbr.h +++ b/storage/myisam/rt_mbr.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2004 MySQL AB & Ramil Kalimullin +/* Copyright (c) 2002, 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/rt_test.c b/storage/myisam/rt_test.c index 7d15afd12ef..7433952c46d 100644 --- a/storage/myisam/rt_test.c +++ b/storage/myisam/rt_test.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2004 MySQL AB +/* Copyright (c) 2002-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/sp_defs.h b/storage/myisam/sp_defs.h index 187ec62b2a3..1591f63f237 100644 --- a/storage/myisam/sp_defs.h +++ b/storage/myisam/sp_defs.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2004 MySQL AB & Ramil Kalimullin +/* Copyright (c) 2002, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisam/sp_key.c b/storage/myisam/sp_key.c index 3748a38ff81..153a847d1dd 100644 --- a/storage/myisam/sp_key.c +++ b/storage/myisam/sp_key.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB & Ramil Kalimullin +/* Copyright (c) 2000, 2002-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/Makefile.am b/storage/myisammrg/Makefile.am index 1ca51bc9d03..796e291d18b 100644 --- a/storage/myisammrg/Makefile.am +++ b/storage/myisammrg/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2002, 2005-2006 MySQL AB +# Copyright (c) 2000-2002, 2005, 2006, 2008 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_close.c b/storage/myisammrg/myrg_close.c index 97216ed47fe..553c6bf54e8 100644 --- a/storage/myisammrg/myrg_close.c +++ b/storage/myisammrg/myrg_close.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001 MySQL AB +/* Copyright (c) 2000, 2001, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_def.h b/storage/myisammrg/myrg_def.h index 9c69da1424d..810fe0ecf9e 100644 --- a/storage/myisammrg/myrg_def.h +++ b/storage/myisammrg/myrg_def.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2003 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_delete.c b/storage/myisammrg/myrg_delete.c index 93d45198b36..28569f9b074 100644 --- a/storage/myisammrg/myrg_delete.c +++ b/storage/myisammrg/myrg_delete.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_extra.c b/storage/myisammrg/myrg_extra.c index 3d14f6a56e6..c5ec13005cd 100644 --- a/storage/myisammrg/myrg_extra.c +++ b/storage/myisammrg/myrg_extra.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_locking.c b/storage/myisammrg/myrg_locking.c index 4f1e3f844a1..baa3db474fc 100644 --- a/storage/myisammrg/myrg_locking.c +++ b/storage/myisammrg/myrg_locking.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_panic.c b/storage/myisammrg/myrg_panic.c index 0b1b7476873..9ee51631235 100644 --- a/storage/myisammrg/myrg_panic.c +++ b/storage/myisammrg/myrg_panic.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001 MySQL AB +/* Copyright (c) 2000, 2001, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_queue.c b/storage/myisammrg/myrg_queue.c index d2579053784..4e1445534d6 100644 --- a/storage/myisammrg/myrg_queue.c +++ b/storage/myisammrg/myrg_queue.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003, 2005 MySQL AB +/* Copyright (c) 2000-2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_range.c b/storage/myisammrg/myrg_range.c index 26aa465e7d1..7908fa681d7 100644 --- a/storage/myisammrg/myrg_range.c +++ b/storage/myisammrg/myrg_range.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2004 MySQL AB +/* Copyright (c) 2002, 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_rfirst.c b/storage/myisammrg/myrg_rfirst.c index 9d7b0f9e83f..dd0488853fb 100644 --- a/storage/myisammrg/myrg_rfirst.c +++ b/storage/myisammrg/myrg_rfirst.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2003 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_rlast.c b/storage/myisammrg/myrg_rlast.c index 8086a2f8104..5f94cbb463c 100644 --- a/storage/myisammrg/myrg_rlast.c +++ b/storage/myisammrg/myrg_rlast.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2003 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_rnext.c b/storage/myisammrg/myrg_rnext.c index 82d5cbf38b1..3fb51d3bc40 100644 --- a/storage/myisammrg/myrg_rnext.c +++ b/storage/myisammrg/myrg_rnext.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_rnext_same.c b/storage/myisammrg/myrg_rnext_same.c index ad7bbfb0f6e..89295adcf8e 100644 --- a/storage/myisammrg/myrg_rnext_same.c +++ b/storage/myisammrg/myrg_rnext_same.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2004 MySQL AB +/* Copyright (c) 2002, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_rprev.c b/storage/myisammrg/myrg_rprev.c index 66c94974940..32edd074289 100644 --- a/storage/myisammrg/myrg_rprev.c +++ b/storage/myisammrg/myrg_rprev.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2003 MySQL AB +/* Copyright (c) 2000-2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_rrnd.c b/storage/myisammrg/myrg_rrnd.c index b598563680c..b2622c29519 100644 --- a/storage/myisammrg/myrg_rrnd.c +++ b/storage/myisammrg/myrg_rrnd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_rsame.c b/storage/myisammrg/myrg_rsame.c index 2f7523759dc..d7410446af5 100644 --- a/storage/myisammrg/myrg_rsame.c +++ b/storage/myisammrg/myrg_rsame.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_static.c b/storage/myisammrg/myrg_static.c index c20d2be4396..a18471a96f3 100644 --- a/storage/myisammrg/myrg_static.c +++ b/storage/myisammrg/myrg_static.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2001, 2004 MySQL AB +/* Copyright (c) 2000, 2001, 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_update.c b/storage/myisammrg/myrg_update.c index 5d883be8484..913d67bf90c 100644 --- a/storage/myisammrg/myrg_update.c +++ b/storage/myisammrg/myrg_update.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2002 MySQL AB +/* Copyright (c) 2000-2002, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/myisammrg/myrg_write.c b/storage/myisammrg/myrg_write.c index 27534df2821..ae3db6712ad 100644 --- a/storage/myisammrg/myrg_write.c +++ b/storage/myisammrg/myrg_write.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2002, 2004 MySQL AB +/* Copyright (c) 2001, 2002, 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/config/make-win-dsw.sh b/storage/ndb/config/make-win-dsw.sh index 070a3665bc0..6c4eab7562d 100755 --- a/storage/ndb/config/make-win-dsw.sh +++ b/storage/ndb/config/make-win-dsw.sh @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/config/type_mgmapiclient.mk.am b/storage/ndb/config/type_mgmapiclient.mk.am index 662dc240cc6..cd4d9233bdd 100644 --- a/storage/ndb/config/type_mgmapiclient.mk.am +++ b/storage/ndb/config/type_mgmapiclient.mk.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/config/type_ndbapiclient.mk.am b/storage/ndb/config/type_ndbapiclient.mk.am index bb1da207638..89938ec91c2 100644 --- a/storage/ndb/config/type_ndbapiclient.mk.am +++ b/storage/ndb/config/type_ndbapiclient.mk.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/config/win-includes b/storage/ndb/config/win-includes index 0d6eec83ae7..81d0cc3ff88 100755 --- a/storage/ndb/config/win-includes +++ b/storage/ndb/config/win-includes @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/config/win-libraries b/storage/ndb/config/win-libraries index bc9275f9a7b..e09fcf6bdac 100755 --- a/storage/ndb/config/win-libraries +++ b/storage/ndb/config/win-libraries @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/config/win-name b/storage/ndb/config/win-name index 1ceb7019d3f..267afd9c0bd 100755 --- a/storage/ndb/config/win-name +++ b/storage/ndb/config/win-name @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/config/win-sources b/storage/ndb/config/win-sources index ccf0f6b7618..df249f89ae4 100755 --- a/storage/ndb/config/win-sources +++ b/storage/ndb/config/win-sources @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/docs/Makefile.am b/storage/ndb/docs/Makefile.am index 686341a2553..88e19c93eb4 100644 --- a/storage/ndb/docs/Makefile.am +++ b/storage/ndb/docs/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2005 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/docs/doxygen/postdoxy.pl b/storage/ndb/docs/doxygen/postdoxy.pl index a8eab31d47d..c37827c0da3 100755 --- a/storage/ndb/docs/doxygen/postdoxy.pl +++ b/storage/ndb/docs/doxygen/postdoxy.pl @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/docs/doxygen/predoxy.pl b/storage/ndb/docs/doxygen/predoxy.pl index 553052648af..bfa3ede39b7 100755 --- a/storage/ndb/docs/doxygen/predoxy.pl +++ b/storage/ndb/docs/doxygen/predoxy.pl @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2003-2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/Makefile.am b/storage/ndb/include/Makefile.am index 9e6ad016d75..37b6c9bf493 100644 --- a/storage/ndb/include/Makefile.am +++ b/storage/ndb/include/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2006 MySQL AB +# Copyright (c) 2004-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/debugger/DebuggerNames.hpp b/storage/ndb/include/debugger/DebuggerNames.hpp index 86d76ae070c..95f86ceeee2 100644 --- a/storage/ndb/include/debugger/DebuggerNames.hpp +++ b/storage/ndb/include/debugger/DebuggerNames.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/debugger/EventLogger.hpp b/storage/ndb/include/debugger/EventLogger.hpp index 8ae96162a48..9c302360293 100644 --- a/storage/ndb/include/debugger/EventLogger.hpp +++ b/storage/ndb/include/debugger/EventLogger.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/debugger/GrepError.hpp b/storage/ndb/include/debugger/GrepError.hpp index 5a12a132f18..7fb1d1ce94e 100644 --- a/storage/ndb/include/debugger/GrepError.hpp +++ b/storage/ndb/include/debugger/GrepError.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/debugger/SignalLoggerManager.hpp b/storage/ndb/include/debugger/SignalLoggerManager.hpp index 578085ca1b8..05e90ee21de 100644 --- a/storage/ndb/include/debugger/SignalLoggerManager.hpp +++ b/storage/ndb/include/debugger/SignalLoggerManager.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/editline/editline.h b/storage/ndb/include/editline/editline.h index c0befc788e2..0e5173a4c60 100644 --- a/storage/ndb/include/editline/editline.h +++ b/storage/ndb/include/editline/editline.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/AttributeDescriptor.hpp b/storage/ndb/include/kernel/AttributeDescriptor.hpp index a49d0d65e44..db8bf882e77 100644 --- a/storage/ndb/include/kernel/AttributeDescriptor.hpp +++ b/storage/ndb/include/kernel/AttributeDescriptor.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/AttributeHeader.hpp b/storage/ndb/include/kernel/AttributeHeader.hpp index 52f93b6cd05..3db868f39cc 100644 --- a/storage/ndb/include/kernel/AttributeHeader.hpp +++ b/storage/ndb/include/kernel/AttributeHeader.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/AttributeList.hpp b/storage/ndb/include/kernel/AttributeList.hpp index b3f38735b2d..c9687499eb4 100644 --- a/storage/ndb/include/kernel/AttributeList.hpp +++ b/storage/ndb/include/kernel/AttributeList.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/BlockNumbers.h b/storage/ndb/include/kernel/BlockNumbers.h index 66e6a9a8c93..d6b7b777aa7 100644 --- a/storage/ndb/include/kernel/BlockNumbers.h +++ b/storage/ndb/include/kernel/BlockNumbers.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/GlobalSignalNumbers.h b/storage/ndb/include/kernel/GlobalSignalNumbers.h index 9653c20260f..ba7a2dc4517 100644 --- a/storage/ndb/include/kernel/GlobalSignalNumbers.h +++ b/storage/ndb/include/kernel/GlobalSignalNumbers.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/GrepEvent.hpp b/storage/ndb/include/kernel/GrepEvent.hpp index dd1034e6e91..b61e8ef337f 100644 --- a/storage/ndb/include/kernel/GrepEvent.hpp +++ b/storage/ndb/include/kernel/GrepEvent.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/Interpreter.hpp b/storage/ndb/include/kernel/Interpreter.hpp index 356d32599ac..dda92d17372 100644 --- a/storage/ndb/include/kernel/Interpreter.hpp +++ b/storage/ndb/include/kernel/Interpreter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/LogLevel.hpp b/storage/ndb/include/kernel/LogLevel.hpp index d58ac67083c..d36b505f0f2 100644 --- a/storage/ndb/include/kernel/LogLevel.hpp +++ b/storage/ndb/include/kernel/LogLevel.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/NodeBitmask.hpp b/storage/ndb/include/kernel/NodeBitmask.hpp index 7d48cd9f689..684ab0eabee 100644 --- a/storage/ndb/include/kernel/NodeBitmask.hpp +++ b/storage/ndb/include/kernel/NodeBitmask.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/NodeInfo.hpp b/storage/ndb/include/kernel/NodeInfo.hpp index e7fd8dcfccd..8c272e36946 100644 --- a/storage/ndb/include/kernel/NodeInfo.hpp +++ b/storage/ndb/include/kernel/NodeInfo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/NodeState.hpp b/storage/ndb/include/kernel/NodeState.hpp index 61fa25fb237..f692352a038 100644 --- a/storage/ndb/include/kernel/NodeState.hpp +++ b/storage/ndb/include/kernel/NodeState.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/RefConvert.hpp b/storage/ndb/include/kernel/RefConvert.hpp index c15681e1504..aab400eb3a0 100644 --- a/storage/ndb/include/kernel/RefConvert.hpp +++ b/storage/ndb/include/kernel/RefConvert.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/kernel_config_parameters.h b/storage/ndb/include/kernel/kernel_config_parameters.h index b715a1129d3..87ed2389416 100644 --- a/storage/ndb/include/kernel/kernel_config_parameters.h +++ b/storage/ndb/include/kernel/kernel_config_parameters.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/kernel_types.h b/storage/ndb/include/kernel/kernel_types.h index 0a607a50aff..f3493f598dc 100644 --- a/storage/ndb/include/kernel/kernel_types.h +++ b/storage/ndb/include/kernel/kernel_types.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/ndb_limits.h b/storage/ndb/include/kernel/ndb_limits.h index 9a9521e82ef..0a38b6d7c26 100644 --- a/storage/ndb/include/kernel/ndb_limits.h +++ b/storage/ndb/include/kernel/ndb_limits.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/AbortAll.hpp b/storage/ndb/include/kernel/signaldata/AbortAll.hpp index 2d7d3bd7c29..e0e7de7cd01 100644 --- a/storage/ndb/include/kernel/signaldata/AbortAll.hpp +++ b/storage/ndb/include/kernel/signaldata/AbortAll.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/AccFrag.hpp b/storage/ndb/include/kernel/signaldata/AccFrag.hpp index c44e157485c..6491e0629fc 100644 --- a/storage/ndb/include/kernel/signaldata/AccFrag.hpp +++ b/storage/ndb/include/kernel/signaldata/AccFrag.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/AccLock.hpp b/storage/ndb/include/kernel/signaldata/AccLock.hpp index bb7ed6dbe8b..8f36b582f0b 100644 --- a/storage/ndb/include/kernel/signaldata/AccLock.hpp +++ b/storage/ndb/include/kernel/signaldata/AccLock.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/AccScan.hpp b/storage/ndb/include/kernel/signaldata/AccScan.hpp index a0aa38c8d8e..bc7a96140b2 100644 --- a/storage/ndb/include/kernel/signaldata/AccScan.hpp +++ b/storage/ndb/include/kernel/signaldata/AccScan.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/AccSizeAltReq.hpp b/storage/ndb/include/kernel/signaldata/AccSizeAltReq.hpp index b3b239640ae..5c81e980574 100644 --- a/storage/ndb/include/kernel/signaldata/AccSizeAltReq.hpp +++ b/storage/ndb/include/kernel/signaldata/AccSizeAltReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/AllocNodeId.hpp b/storage/ndb/include/kernel/signaldata/AllocNodeId.hpp index e37021ebbc8..351c7fa7aff 100644 --- a/storage/ndb/include/kernel/signaldata/AllocNodeId.hpp +++ b/storage/ndb/include/kernel/signaldata/AllocNodeId.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/AlterIndx.hpp b/storage/ndb/include/kernel/signaldata/AlterIndx.hpp index bd9bf9a1293..9c9a2c07fe6 100644 --- a/storage/ndb/include/kernel/signaldata/AlterIndx.hpp +++ b/storage/ndb/include/kernel/signaldata/AlterIndx.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/AlterTab.hpp b/storage/ndb/include/kernel/signaldata/AlterTab.hpp index d47d68cd2f8..ccafe8c8f58 100644 --- a/storage/ndb/include/kernel/signaldata/AlterTab.hpp +++ b/storage/ndb/include/kernel/signaldata/AlterTab.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/AlterTable.hpp b/storage/ndb/include/kernel/signaldata/AlterTable.hpp index 3d348f8582a..4e292c61920 100644 --- a/storage/ndb/include/kernel/signaldata/AlterTable.hpp +++ b/storage/ndb/include/kernel/signaldata/AlterTable.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/AlterTrig.hpp b/storage/ndb/include/kernel/signaldata/AlterTrig.hpp index 5ecda1c470c..b2adba22595 100644 --- a/storage/ndb/include/kernel/signaldata/AlterTrig.hpp +++ b/storage/ndb/include/kernel/signaldata/AlterTrig.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ApiBroadcast.hpp b/storage/ndb/include/kernel/signaldata/ApiBroadcast.hpp index 8d71d335103..ea24fdf8b74 100644 --- a/storage/ndb/include/kernel/signaldata/ApiBroadcast.hpp +++ b/storage/ndb/include/kernel/signaldata/ApiBroadcast.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ApiRegSignalData.hpp b/storage/ndb/include/kernel/signaldata/ApiRegSignalData.hpp index 119b2cdfc61..ccb01673f8e 100644 --- a/storage/ndb/include/kernel/signaldata/ApiRegSignalData.hpp +++ b/storage/ndb/include/kernel/signaldata/ApiRegSignalData.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ApiVersion.hpp b/storage/ndb/include/kernel/signaldata/ApiVersion.hpp index c895d881f61..a9d93e4f0ab 100644 --- a/storage/ndb/include/kernel/signaldata/ApiVersion.hpp +++ b/storage/ndb/include/kernel/signaldata/ApiVersion.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ArbitSignalData.hpp b/storage/ndb/include/kernel/signaldata/ArbitSignalData.hpp index ed7e3929414..0f14109f4d5 100644 --- a/storage/ndb/include/kernel/signaldata/ArbitSignalData.hpp +++ b/storage/ndb/include/kernel/signaldata/ArbitSignalData.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/AttrInfo.hpp b/storage/ndb/include/kernel/signaldata/AttrInfo.hpp index eafa79f0258..50128e4659f 100644 --- a/storage/ndb/include/kernel/signaldata/AttrInfo.hpp +++ b/storage/ndb/include/kernel/signaldata/AttrInfo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/BackupContinueB.hpp b/storage/ndb/include/kernel/signaldata/BackupContinueB.hpp index d96173d6807..178732e3416 100644 --- a/storage/ndb/include/kernel/signaldata/BackupContinueB.hpp +++ b/storage/ndb/include/kernel/signaldata/BackupContinueB.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/BackupImpl.hpp b/storage/ndb/include/kernel/signaldata/BackupImpl.hpp index 5286c975f13..f4197572be0 100644 --- a/storage/ndb/include/kernel/signaldata/BackupImpl.hpp +++ b/storage/ndb/include/kernel/signaldata/BackupImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/BackupSignalData.hpp b/storage/ndb/include/kernel/signaldata/BackupSignalData.hpp index 21e24fcf5bc..ffcc2482c0a 100644 --- a/storage/ndb/include/kernel/signaldata/BackupSignalData.hpp +++ b/storage/ndb/include/kernel/signaldata/BackupSignalData.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/BlockCommitOrd.hpp b/storage/ndb/include/kernel/signaldata/BlockCommitOrd.hpp index 924045926f9..d6ffc721a0e 100644 --- a/storage/ndb/include/kernel/signaldata/BlockCommitOrd.hpp +++ b/storage/ndb/include/kernel/signaldata/BlockCommitOrd.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/BuildIndx.hpp b/storage/ndb/include/kernel/signaldata/BuildIndx.hpp index d52dee648b8..591991746cf 100644 --- a/storage/ndb/include/kernel/signaldata/BuildIndx.hpp +++ b/storage/ndb/include/kernel/signaldata/BuildIndx.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CheckNodeGroups.hpp b/storage/ndb/include/kernel/signaldata/CheckNodeGroups.hpp index 6fc04a31709..a1b57da12ba 100644 --- a/storage/ndb/include/kernel/signaldata/CheckNodeGroups.hpp +++ b/storage/ndb/include/kernel/signaldata/CheckNodeGroups.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CloseComReqConf.hpp b/storage/ndb/include/kernel/signaldata/CloseComReqConf.hpp index fbc92acfb2f..fa3ecf7e3cd 100644 --- a/storage/ndb/include/kernel/signaldata/CloseComReqConf.hpp +++ b/storage/ndb/include/kernel/signaldata/CloseComReqConf.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CmInit.hpp b/storage/ndb/include/kernel/signaldata/CmInit.hpp index a61c58abb51..950b5fd011e 100644 --- a/storage/ndb/include/kernel/signaldata/CmInit.hpp +++ b/storage/ndb/include/kernel/signaldata/CmInit.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CmRegSignalData.hpp b/storage/ndb/include/kernel/signaldata/CmRegSignalData.hpp index e2e35cc9f93..c59530608a4 100644 --- a/storage/ndb/include/kernel/signaldata/CmRegSignalData.hpp +++ b/storage/ndb/include/kernel/signaldata/CmRegSignalData.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CmvmiCfgConf.hpp b/storage/ndb/include/kernel/signaldata/CmvmiCfgConf.hpp index dc2eaee786b..4a07c314832 100644 --- a/storage/ndb/include/kernel/signaldata/CmvmiCfgConf.hpp +++ b/storage/ndb/include/kernel/signaldata/CmvmiCfgConf.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CntrMasterConf.hpp b/storage/ndb/include/kernel/signaldata/CntrMasterConf.hpp index f2948a8835e..f5c8db36325 100644 --- a/storage/ndb/include/kernel/signaldata/CntrMasterConf.hpp +++ b/storage/ndb/include/kernel/signaldata/CntrMasterConf.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CntrMasterReq.hpp b/storage/ndb/include/kernel/signaldata/CntrMasterReq.hpp index 50ff9b95e6c..12c4e6dca50 100644 --- a/storage/ndb/include/kernel/signaldata/CntrMasterReq.hpp +++ b/storage/ndb/include/kernel/signaldata/CntrMasterReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CntrStart.hpp b/storage/ndb/include/kernel/signaldata/CntrStart.hpp index 9fc25a3fc4b..d0fb272f32b 100644 --- a/storage/ndb/include/kernel/signaldata/CntrStart.hpp +++ b/storage/ndb/include/kernel/signaldata/CntrStart.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ConfigParamId.hpp b/storage/ndb/include/kernel/signaldata/ConfigParamId.hpp index 90d604fd024..3afecb8fec0 100644 --- a/storage/ndb/include/kernel/signaldata/ConfigParamId.hpp +++ b/storage/ndb/include/kernel/signaldata/ConfigParamId.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ContinueFragmented.hpp b/storage/ndb/include/kernel/signaldata/ContinueFragmented.hpp index 31f47392a8b..e7e5eb2442b 100644 --- a/storage/ndb/include/kernel/signaldata/ContinueFragmented.hpp +++ b/storage/ndb/include/kernel/signaldata/ContinueFragmented.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CopyActive.hpp b/storage/ndb/include/kernel/signaldata/CopyActive.hpp index 2107d63ca5d..6a0594be94b 100644 --- a/storage/ndb/include/kernel/signaldata/CopyActive.hpp +++ b/storage/ndb/include/kernel/signaldata/CopyActive.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CopyFrag.hpp b/storage/ndb/include/kernel/signaldata/CopyFrag.hpp index d985358dce4..da9b3980f47 100644 --- a/storage/ndb/include/kernel/signaldata/CopyFrag.hpp +++ b/storage/ndb/include/kernel/signaldata/CopyFrag.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CopyGCIReq.hpp b/storage/ndb/include/kernel/signaldata/CopyGCIReq.hpp index c669e5cabee..917d8fdf39d 100644 --- a/storage/ndb/include/kernel/signaldata/CopyGCIReq.hpp +++ b/storage/ndb/include/kernel/signaldata/CopyGCIReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CreateEvnt.hpp b/storage/ndb/include/kernel/signaldata/CreateEvnt.hpp index ac191536b18..0fcb84d182e 100644 --- a/storage/ndb/include/kernel/signaldata/CreateEvnt.hpp +++ b/storage/ndb/include/kernel/signaldata/CreateEvnt.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp b/storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp index fa92af1de8c..58382e2bc37 100644 --- a/storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp +++ b/storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CreateFilegroupImpl.hpp b/storage/ndb/include/kernel/signaldata/CreateFilegroupImpl.hpp index bbd3e818681..d1b5cf73370 100644 --- a/storage/ndb/include/kernel/signaldata/CreateFilegroupImpl.hpp +++ b/storage/ndb/include/kernel/signaldata/CreateFilegroupImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CreateFrag.hpp b/storage/ndb/include/kernel/signaldata/CreateFrag.hpp index dad2aa542ca..735081a5428 100644 --- a/storage/ndb/include/kernel/signaldata/CreateFrag.hpp +++ b/storage/ndb/include/kernel/signaldata/CreateFrag.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CreateFragmentation.hpp b/storage/ndb/include/kernel/signaldata/CreateFragmentation.hpp index 9a4adcd1a13..c39dd25844c 100644 --- a/storage/ndb/include/kernel/signaldata/CreateFragmentation.hpp +++ b/storage/ndb/include/kernel/signaldata/CreateFragmentation.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CreateIndx.hpp b/storage/ndb/include/kernel/signaldata/CreateIndx.hpp index 74f1237c383..ae94865ea7d 100644 --- a/storage/ndb/include/kernel/signaldata/CreateIndx.hpp +++ b/storage/ndb/include/kernel/signaldata/CreateIndx.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CreateObj.hpp b/storage/ndb/include/kernel/signaldata/CreateObj.hpp index 59c014647b6..c707bfab007 100644 --- a/storage/ndb/include/kernel/signaldata/CreateObj.hpp +++ b/storage/ndb/include/kernel/signaldata/CreateObj.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CreateTab.hpp b/storage/ndb/include/kernel/signaldata/CreateTab.hpp index 51eed93bde9..6b158125fb5 100644 --- a/storage/ndb/include/kernel/signaldata/CreateTab.hpp +++ b/storage/ndb/include/kernel/signaldata/CreateTab.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CreateTable.hpp b/storage/ndb/include/kernel/signaldata/CreateTable.hpp index 6ee304fcad8..27fc3761b59 100644 --- a/storage/ndb/include/kernel/signaldata/CreateTable.hpp +++ b/storage/ndb/include/kernel/signaldata/CreateTable.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/CreateTrig.hpp b/storage/ndb/include/kernel/signaldata/CreateTrig.hpp index c02dac4228b..61050bc3c1a 100644 --- a/storage/ndb/include/kernel/signaldata/CreateTrig.hpp +++ b/storage/ndb/include/kernel/signaldata/CreateTrig.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DiAddTab.hpp b/storage/ndb/include/kernel/signaldata/DiAddTab.hpp index 787eb5eb6db..d3d404b853e 100644 --- a/storage/ndb/include/kernel/signaldata/DiAddTab.hpp +++ b/storage/ndb/include/kernel/signaldata/DiAddTab.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DiGetNodes.hpp b/storage/ndb/include/kernel/signaldata/DiGetNodes.hpp index 5e22c64143e..aba3d417988 100644 --- a/storage/ndb/include/kernel/signaldata/DiGetNodes.hpp +++ b/storage/ndb/include/kernel/signaldata/DiGetNodes.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DictLock.hpp b/storage/ndb/include/kernel/signaldata/DictLock.hpp index 9cf6199ae5c..0337ff61abb 100644 --- a/storage/ndb/include/kernel/signaldata/DictLock.hpp +++ b/storage/ndb/include/kernel/signaldata/DictLock.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DictObjOp.hpp b/storage/ndb/include/kernel/signaldata/DictObjOp.hpp index c153731139c..2058ded4591 100644 --- a/storage/ndb/include/kernel/signaldata/DictObjOp.hpp +++ b/storage/ndb/include/kernel/signaldata/DictObjOp.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DictSchemaInfo.hpp b/storage/ndb/include/kernel/signaldata/DictSchemaInfo.hpp index 88919769b37..5e8a344b26e 100644 --- a/storage/ndb/include/kernel/signaldata/DictSchemaInfo.hpp +++ b/storage/ndb/include/kernel/signaldata/DictSchemaInfo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DictSizeAltReq.hpp b/storage/ndb/include/kernel/signaldata/DictSizeAltReq.hpp index a5b2584a374..133f6df8ec4 100644 --- a/storage/ndb/include/kernel/signaldata/DictSizeAltReq.hpp +++ b/storage/ndb/include/kernel/signaldata/DictSizeAltReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DictStart.hpp b/storage/ndb/include/kernel/signaldata/DictStart.hpp index ec317149095..4e8b2c129de 100644 --- a/storage/ndb/include/kernel/signaldata/DictStart.hpp +++ b/storage/ndb/include/kernel/signaldata/DictStart.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DictTabInfo.hpp b/storage/ndb/include/kernel/signaldata/DictTabInfo.hpp index 3923d8e6fbf..6fef079a1a0 100644 --- a/storage/ndb/include/kernel/signaldata/DictTabInfo.hpp +++ b/storage/ndb/include/kernel/signaldata/DictTabInfo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DihAddFrag.hpp b/storage/ndb/include/kernel/signaldata/DihAddFrag.hpp index 123b81c9480..5c7215a463e 100644 --- a/storage/ndb/include/kernel/signaldata/DihAddFrag.hpp +++ b/storage/ndb/include/kernel/signaldata/DihAddFrag.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DihContinueB.hpp b/storage/ndb/include/kernel/signaldata/DihContinueB.hpp index 4bec9af4856..71319483fff 100644 --- a/storage/ndb/include/kernel/signaldata/DihContinueB.hpp +++ b/storage/ndb/include/kernel/signaldata/DihContinueB.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DihSizeAltReq.hpp b/storage/ndb/include/kernel/signaldata/DihSizeAltReq.hpp index 9e901d5bf49..653e20bec55 100644 --- a/storage/ndb/include/kernel/signaldata/DihSizeAltReq.hpp +++ b/storage/ndb/include/kernel/signaldata/DihSizeAltReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DihStartTab.hpp b/storage/ndb/include/kernel/signaldata/DihStartTab.hpp index 434712dbf47..b8bad19aa57 100644 --- a/storage/ndb/include/kernel/signaldata/DihStartTab.hpp +++ b/storage/ndb/include/kernel/signaldata/DihStartTab.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DihSwitchReplica.hpp b/storage/ndb/include/kernel/signaldata/DihSwitchReplica.hpp index cbeeb60af92..4c43f1c76b2 100644 --- a/storage/ndb/include/kernel/signaldata/DihSwitchReplica.hpp +++ b/storage/ndb/include/kernel/signaldata/DihSwitchReplica.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DisconnectRep.hpp b/storage/ndb/include/kernel/signaldata/DisconnectRep.hpp index 26515fc0ef8..6faf2d45bfc 100644 --- a/storage/ndb/include/kernel/signaldata/DisconnectRep.hpp +++ b/storage/ndb/include/kernel/signaldata/DisconnectRep.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DropFilegroup.hpp b/storage/ndb/include/kernel/signaldata/DropFilegroup.hpp index a243380246e..f664cd04ec8 100644 --- a/storage/ndb/include/kernel/signaldata/DropFilegroup.hpp +++ b/storage/ndb/include/kernel/signaldata/DropFilegroup.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DropFilegroupImpl.hpp b/storage/ndb/include/kernel/signaldata/DropFilegroupImpl.hpp index da1d953c1ca..ceaf14d2365 100644 --- a/storage/ndb/include/kernel/signaldata/DropFilegroupImpl.hpp +++ b/storage/ndb/include/kernel/signaldata/DropFilegroupImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DropIndx.hpp b/storage/ndb/include/kernel/signaldata/DropIndx.hpp index 6e3b183995f..b2862f6af78 100644 --- a/storage/ndb/include/kernel/signaldata/DropIndx.hpp +++ b/storage/ndb/include/kernel/signaldata/DropIndx.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DropObj.hpp b/storage/ndb/include/kernel/signaldata/DropObj.hpp index 278c9063c37..c9138dbccbd 100644 --- a/storage/ndb/include/kernel/signaldata/DropObj.hpp +++ b/storage/ndb/include/kernel/signaldata/DropObj.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DropTab.hpp b/storage/ndb/include/kernel/signaldata/DropTab.hpp index fd865bd3da2..3ffa5f80d03 100644 --- a/storage/ndb/include/kernel/signaldata/DropTab.hpp +++ b/storage/ndb/include/kernel/signaldata/DropTab.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DropTabFile.hpp b/storage/ndb/include/kernel/signaldata/DropTabFile.hpp index d9e6b96b5a9..464ee91c4ae 100644 --- a/storage/ndb/include/kernel/signaldata/DropTabFile.hpp +++ b/storage/ndb/include/kernel/signaldata/DropTabFile.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DropTable.hpp b/storage/ndb/include/kernel/signaldata/DropTable.hpp index c0a4596e1dc..7e3d5bb6e50 100644 --- a/storage/ndb/include/kernel/signaldata/DropTable.hpp +++ b/storage/ndb/include/kernel/signaldata/DropTable.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DropTrig.hpp b/storage/ndb/include/kernel/signaldata/DropTrig.hpp index 27e1a67801d..7eaefb8582a 100644 --- a/storage/ndb/include/kernel/signaldata/DropTrig.hpp +++ b/storage/ndb/include/kernel/signaldata/DropTrig.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp b/storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp index 46c5ef3751b..0d945c0bce5 100644 --- a/storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp +++ b/storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/EmptyLcp.hpp b/storage/ndb/include/kernel/signaldata/EmptyLcp.hpp index 60fccd742b6..b4ec8f2c336 100644 --- a/storage/ndb/include/kernel/signaldata/EmptyLcp.hpp +++ b/storage/ndb/include/kernel/signaldata/EmptyLcp.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/EndTo.hpp b/storage/ndb/include/kernel/signaldata/EndTo.hpp index 0885edff45b..a984e690692 100644 --- a/storage/ndb/include/kernel/signaldata/EndTo.hpp +++ b/storage/ndb/include/kernel/signaldata/EndTo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/EventReport.hpp b/storage/ndb/include/kernel/signaldata/EventReport.hpp index e7b1fa3d79a..91344ed7537 100644 --- a/storage/ndb/include/kernel/signaldata/EventReport.hpp +++ b/storage/ndb/include/kernel/signaldata/EventReport.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/EventSubscribeReq.hpp b/storage/ndb/include/kernel/signaldata/EventSubscribeReq.hpp index d72b6dec3e5..f466c36f09f 100644 --- a/storage/ndb/include/kernel/signaldata/EventSubscribeReq.hpp +++ b/storage/ndb/include/kernel/signaldata/EventSubscribeReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ExecFragReq.hpp b/storage/ndb/include/kernel/signaldata/ExecFragReq.hpp index 47155638b81..3f2dae50009 100644 --- a/storage/ndb/include/kernel/signaldata/ExecFragReq.hpp +++ b/storage/ndb/include/kernel/signaldata/ExecFragReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/Extent.hpp b/storage/ndb/include/kernel/signaldata/Extent.hpp index 283ea7ba85a..8445d34ee7d 100644 --- a/storage/ndb/include/kernel/signaldata/Extent.hpp +++ b/storage/ndb/include/kernel/signaldata/Extent.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/FailRep.hpp b/storage/ndb/include/kernel/signaldata/FailRep.hpp index 798ff3f5e47..3a1439b9447 100644 --- a/storage/ndb/include/kernel/signaldata/FailRep.hpp +++ b/storage/ndb/include/kernel/signaldata/FailRep.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/FireTrigOrd.hpp b/storage/ndb/include/kernel/signaldata/FireTrigOrd.hpp index d33f8be3650..99e39cef0fd 100644 --- a/storage/ndb/include/kernel/signaldata/FireTrigOrd.hpp +++ b/storage/ndb/include/kernel/signaldata/FireTrigOrd.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/FsAppendReq.hpp b/storage/ndb/include/kernel/signaldata/FsAppendReq.hpp index dafd597dbe6..d5a0a4a654e 100644 --- a/storage/ndb/include/kernel/signaldata/FsAppendReq.hpp +++ b/storage/ndb/include/kernel/signaldata/FsAppendReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/FsCloseReq.hpp b/storage/ndb/include/kernel/signaldata/FsCloseReq.hpp index 41d12c71dd7..e248c36420e 100644 --- a/storage/ndb/include/kernel/signaldata/FsCloseReq.hpp +++ b/storage/ndb/include/kernel/signaldata/FsCloseReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/FsConf.hpp b/storage/ndb/include/kernel/signaldata/FsConf.hpp index 87d56e9a364..185c81be9c7 100644 --- a/storage/ndb/include/kernel/signaldata/FsConf.hpp +++ b/storage/ndb/include/kernel/signaldata/FsConf.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/FsOpenReq.hpp b/storage/ndb/include/kernel/signaldata/FsOpenReq.hpp index 8126267f946..ad35c5bac6d 100644 --- a/storage/ndb/include/kernel/signaldata/FsOpenReq.hpp +++ b/storage/ndb/include/kernel/signaldata/FsOpenReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/FsReadWriteReq.hpp b/storage/ndb/include/kernel/signaldata/FsReadWriteReq.hpp index cf3112ec523..7dd28f0a33b 100644 --- a/storage/ndb/include/kernel/signaldata/FsReadWriteReq.hpp +++ b/storage/ndb/include/kernel/signaldata/FsReadWriteReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/FsRef.hpp b/storage/ndb/include/kernel/signaldata/FsRef.hpp index ab5a269f496..46405ca6040 100644 --- a/storage/ndb/include/kernel/signaldata/FsRef.hpp +++ b/storage/ndb/include/kernel/signaldata/FsRef.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/FsRemoveReq.hpp b/storage/ndb/include/kernel/signaldata/FsRemoveReq.hpp index 24971a489e6..436f3cecefe 100644 --- a/storage/ndb/include/kernel/signaldata/FsRemoveReq.hpp +++ b/storage/ndb/include/kernel/signaldata/FsRemoveReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/GCPSave.hpp b/storage/ndb/include/kernel/signaldata/GCPSave.hpp index 61a0414c093..33494b3a02b 100644 --- a/storage/ndb/include/kernel/signaldata/GCPSave.hpp +++ b/storage/ndb/include/kernel/signaldata/GCPSave.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/GetTabInfo.hpp b/storage/ndb/include/kernel/signaldata/GetTabInfo.hpp index 0a5e38fa91a..299224a822d 100644 --- a/storage/ndb/include/kernel/signaldata/GetTabInfo.hpp +++ b/storage/ndb/include/kernel/signaldata/GetTabInfo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/GetTableId.hpp b/storage/ndb/include/kernel/signaldata/GetTableId.hpp index 8c785a911ab..e724600ddde 100644 --- a/storage/ndb/include/kernel/signaldata/GetTableId.hpp +++ b/storage/ndb/include/kernel/signaldata/GetTableId.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/GrepImpl.hpp b/storage/ndb/include/kernel/signaldata/GrepImpl.hpp index 335c78f58eb..d8d96640faf 100644 --- a/storage/ndb/include/kernel/signaldata/GrepImpl.hpp +++ b/storage/ndb/include/kernel/signaldata/GrepImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/HotSpareRep.hpp b/storage/ndb/include/kernel/signaldata/HotSpareRep.hpp index c3e2922f1d7..95cfb10b1ba 100644 --- a/storage/ndb/include/kernel/signaldata/HotSpareRep.hpp +++ b/storage/ndb/include/kernel/signaldata/HotSpareRep.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/IndxAttrInfo.hpp b/storage/ndb/include/kernel/signaldata/IndxAttrInfo.hpp index f42e9ff8657..63d9bd53f32 100755 --- a/storage/ndb/include/kernel/signaldata/IndxAttrInfo.hpp +++ b/storage/ndb/include/kernel/signaldata/IndxAttrInfo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/IndxKeyInfo.hpp b/storage/ndb/include/kernel/signaldata/IndxKeyInfo.hpp index 82ba9ae6c3f..9cbe51ce6f9 100755 --- a/storage/ndb/include/kernel/signaldata/IndxKeyInfo.hpp +++ b/storage/ndb/include/kernel/signaldata/IndxKeyInfo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/InvalidateNodeLCPConf.hpp b/storage/ndb/include/kernel/signaldata/InvalidateNodeLCPConf.hpp index 49293a5d18b..bd9108f781a 100644 --- a/storage/ndb/include/kernel/signaldata/InvalidateNodeLCPConf.hpp +++ b/storage/ndb/include/kernel/signaldata/InvalidateNodeLCPConf.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/InvalidateNodeLCPReq.hpp b/storage/ndb/include/kernel/signaldata/InvalidateNodeLCPReq.hpp index 57f9870d019..61d665e81aa 100644 --- a/storage/ndb/include/kernel/signaldata/InvalidateNodeLCPReq.hpp +++ b/storage/ndb/include/kernel/signaldata/InvalidateNodeLCPReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/KeyInfo.hpp b/storage/ndb/include/kernel/signaldata/KeyInfo.hpp index 48bb028d726..d838c87c306 100644 --- a/storage/ndb/include/kernel/signaldata/KeyInfo.hpp +++ b/storage/ndb/include/kernel/signaldata/KeyInfo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/LCP.hpp b/storage/ndb/include/kernel/signaldata/LCP.hpp index 844b5de0afd..9feef8cc6dc 100644 --- a/storage/ndb/include/kernel/signaldata/LCP.hpp +++ b/storage/ndb/include/kernel/signaldata/LCP.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/LgmanContinueB.hpp b/storage/ndb/include/kernel/signaldata/LgmanContinueB.hpp index b1d0f392817..c0c18677312 100644 --- a/storage/ndb/include/kernel/signaldata/LgmanContinueB.hpp +++ b/storage/ndb/include/kernel/signaldata/LgmanContinueB.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ListTables.hpp b/storage/ndb/include/kernel/signaldata/ListTables.hpp index 75cad41d03a..d42dcdb3136 100644 --- a/storage/ndb/include/kernel/signaldata/ListTables.hpp +++ b/storage/ndb/include/kernel/signaldata/ListTables.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/LqhFrag.hpp b/storage/ndb/include/kernel/signaldata/LqhFrag.hpp index d4f4877cc5b..fdf7b02bb05 100644 --- a/storage/ndb/include/kernel/signaldata/LqhFrag.hpp +++ b/storage/ndb/include/kernel/signaldata/LqhFrag.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/LqhKey.hpp b/storage/ndb/include/kernel/signaldata/LqhKey.hpp index c85a4d4a796..8f9afac6b26 100644 --- a/storage/ndb/include/kernel/signaldata/LqhKey.hpp +++ b/storage/ndb/include/kernel/signaldata/LqhKey.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/LqhSizeAltReq.hpp b/storage/ndb/include/kernel/signaldata/LqhSizeAltReq.hpp index 109f7343678..3443b91b394 100644 --- a/storage/ndb/include/kernel/signaldata/LqhSizeAltReq.hpp +++ b/storage/ndb/include/kernel/signaldata/LqhSizeAltReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/LqhTransConf.hpp b/storage/ndb/include/kernel/signaldata/LqhTransConf.hpp index 4a72d344ad6..ae0a32e1ace 100644 --- a/storage/ndb/include/kernel/signaldata/LqhTransConf.hpp +++ b/storage/ndb/include/kernel/signaldata/LqhTransConf.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ManagementServer.hpp b/storage/ndb/include/kernel/signaldata/ManagementServer.hpp index c97a252d638..970acd4d181 100644 --- a/storage/ndb/include/kernel/signaldata/ManagementServer.hpp +++ b/storage/ndb/include/kernel/signaldata/ManagementServer.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/MasterGCP.hpp b/storage/ndb/include/kernel/signaldata/MasterGCP.hpp index 683a1ac869f..661f299e661 100644 --- a/storage/ndb/include/kernel/signaldata/MasterGCP.hpp +++ b/storage/ndb/include/kernel/signaldata/MasterGCP.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/MasterLCP.hpp b/storage/ndb/include/kernel/signaldata/MasterLCP.hpp index b9fbff2313d..bb7f254f8b6 100644 --- a/storage/ndb/include/kernel/signaldata/MasterLCP.hpp +++ b/storage/ndb/include/kernel/signaldata/MasterLCP.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/NFCompleteRep.hpp b/storage/ndb/include/kernel/signaldata/NFCompleteRep.hpp index 18b201021b5..974e37c0f8c 100644 --- a/storage/ndb/include/kernel/signaldata/NFCompleteRep.hpp +++ b/storage/ndb/include/kernel/signaldata/NFCompleteRep.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/NdbSttor.hpp b/storage/ndb/include/kernel/signaldata/NdbSttor.hpp index e5e5dfb829c..564d37853eb 100644 --- a/storage/ndb/include/kernel/signaldata/NdbSttor.hpp +++ b/storage/ndb/include/kernel/signaldata/NdbSttor.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/NdbfsContinueB.hpp b/storage/ndb/include/kernel/signaldata/NdbfsContinueB.hpp index 22e6e8e3e0b..505e3eff636 100644 --- a/storage/ndb/include/kernel/signaldata/NdbfsContinueB.hpp +++ b/storage/ndb/include/kernel/signaldata/NdbfsContinueB.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/NextScan.hpp b/storage/ndb/include/kernel/signaldata/NextScan.hpp index 3cc227785b4..3c61ba4669b 100644 --- a/storage/ndb/include/kernel/signaldata/NextScan.hpp +++ b/storage/ndb/include/kernel/signaldata/NextScan.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/NodeFailRep.hpp b/storage/ndb/include/kernel/signaldata/NodeFailRep.hpp index a7c55e8fff1..40be5efb35e 100644 --- a/storage/ndb/include/kernel/signaldata/NodeFailRep.hpp +++ b/storage/ndb/include/kernel/signaldata/NodeFailRep.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/NodeStateSignalData.hpp b/storage/ndb/include/kernel/signaldata/NodeStateSignalData.hpp index 0c15f3f968b..e3502fe5439 100644 --- a/storage/ndb/include/kernel/signaldata/NodeStateSignalData.hpp +++ b/storage/ndb/include/kernel/signaldata/NodeStateSignalData.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/PackedSignal.hpp b/storage/ndb/include/kernel/signaldata/PackedSignal.hpp index 50f9517b1c8..338b23f75de 100644 --- a/storage/ndb/include/kernel/signaldata/PackedSignal.hpp +++ b/storage/ndb/include/kernel/signaldata/PackedSignal.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/PgmanContinueB.hpp b/storage/ndb/include/kernel/signaldata/PgmanContinueB.hpp index 2cb89360a75..f0255e25d1d 100644 --- a/storage/ndb/include/kernel/signaldata/PgmanContinueB.hpp +++ b/storage/ndb/include/kernel/signaldata/PgmanContinueB.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/PrepDropTab.hpp b/storage/ndb/include/kernel/signaldata/PrepDropTab.hpp index 9fed2f287d2..cc93bd7d744 100644 --- a/storage/ndb/include/kernel/signaldata/PrepDropTab.hpp +++ b/storage/ndb/include/kernel/signaldata/PrepDropTab.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/PrepFailReqRef.hpp b/storage/ndb/include/kernel/signaldata/PrepFailReqRef.hpp index e7b83f6b316..ea22efef21a 100644 --- a/storage/ndb/include/kernel/signaldata/PrepFailReqRef.hpp +++ b/storage/ndb/include/kernel/signaldata/PrepFailReqRef.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ReadConfig.hpp b/storage/ndb/include/kernel/signaldata/ReadConfig.hpp index 68a32ec4e68..afbb8ae1fdf 100644 --- a/storage/ndb/include/kernel/signaldata/ReadConfig.hpp +++ b/storage/ndb/include/kernel/signaldata/ReadConfig.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ReadNodesConf.hpp b/storage/ndb/include/kernel/signaldata/ReadNodesConf.hpp index f42c9249418..abad5403702 100644 --- a/storage/ndb/include/kernel/signaldata/ReadNodesConf.hpp +++ b/storage/ndb/include/kernel/signaldata/ReadNodesConf.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/RelTabMem.hpp b/storage/ndb/include/kernel/signaldata/RelTabMem.hpp index 372ef58d283..5b02e167842 100644 --- a/storage/ndb/include/kernel/signaldata/RelTabMem.hpp +++ b/storage/ndb/include/kernel/signaldata/RelTabMem.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/RepImpl.hpp b/storage/ndb/include/kernel/signaldata/RepImpl.hpp index a82ae979d4d..4380efd9246 100644 --- a/storage/ndb/include/kernel/signaldata/RepImpl.hpp +++ b/storage/ndb/include/kernel/signaldata/RepImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/RestoreContinueB.hpp b/storage/ndb/include/kernel/signaldata/RestoreContinueB.hpp index 60e133f7c2b..fc7640565d2 100644 --- a/storage/ndb/include/kernel/signaldata/RestoreContinueB.hpp +++ b/storage/ndb/include/kernel/signaldata/RestoreContinueB.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/RestoreImpl.hpp b/storage/ndb/include/kernel/signaldata/RestoreImpl.hpp index 60acebdd809..72a967f0f11 100644 --- a/storage/ndb/include/kernel/signaldata/RestoreImpl.hpp +++ b/storage/ndb/include/kernel/signaldata/RestoreImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ResumeReq.hpp b/storage/ndb/include/kernel/signaldata/ResumeReq.hpp index 5ef57a9b700..21b7d18b51a 100644 --- a/storage/ndb/include/kernel/signaldata/ResumeReq.hpp +++ b/storage/ndb/include/kernel/signaldata/ResumeReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/RouteOrd.hpp b/storage/ndb/include/kernel/signaldata/RouteOrd.hpp index 01ed8fd98f2..f00cf068852 100644 --- a/storage/ndb/include/kernel/signaldata/RouteOrd.hpp +++ b/storage/ndb/include/kernel/signaldata/RouteOrd.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ScanFrag.hpp b/storage/ndb/include/kernel/signaldata/ScanFrag.hpp index c06ad20b6a2..a6e4f150525 100644 --- a/storage/ndb/include/kernel/signaldata/ScanFrag.hpp +++ b/storage/ndb/include/kernel/signaldata/ScanFrag.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/ScanTab.hpp b/storage/ndb/include/kernel/signaldata/ScanTab.hpp index 3d2071ca019..5fac09faedd 100644 --- a/storage/ndb/include/kernel/signaldata/ScanTab.hpp +++ b/storage/ndb/include/kernel/signaldata/ScanTab.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp b/storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp index 942baf2a9ad..2483aed6c0c 100644 --- a/storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp +++ b/storage/ndb/include/kernel/signaldata/SetLogLevelOrd.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/SetVarReq.hpp b/storage/ndb/include/kernel/signaldata/SetVarReq.hpp index a4bf54d2a2a..36c27000681 100644 --- a/storage/ndb/include/kernel/signaldata/SetVarReq.hpp +++ b/storage/ndb/include/kernel/signaldata/SetVarReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/SignalData.hpp b/storage/ndb/include/kernel/signaldata/SignalData.hpp index 812a0dda6f8..ad9d3267a57 100644 --- a/storage/ndb/include/kernel/signaldata/SignalData.hpp +++ b/storage/ndb/include/kernel/signaldata/SignalData.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/SignalDataPrint.hpp b/storage/ndb/include/kernel/signaldata/SignalDataPrint.hpp index 1d0b3a17bfd..7fd18f43b37 100644 --- a/storage/ndb/include/kernel/signaldata/SignalDataPrint.hpp +++ b/storage/ndb/include/kernel/signaldata/SignalDataPrint.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/SignalDroppedRep.hpp b/storage/ndb/include/kernel/signaldata/SignalDroppedRep.hpp index fd6d5afabce..dcedbb18d73 100644 --- a/storage/ndb/include/kernel/signaldata/SignalDroppedRep.hpp +++ b/storage/ndb/include/kernel/signaldata/SignalDroppedRep.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/SrFragidConf.hpp b/storage/ndb/include/kernel/signaldata/SrFragidConf.hpp index e534378779e..58fb7403165 100644 --- a/storage/ndb/include/kernel/signaldata/SrFragidConf.hpp +++ b/storage/ndb/include/kernel/signaldata/SrFragidConf.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/StartFragReq.hpp b/storage/ndb/include/kernel/signaldata/StartFragReq.hpp index 46a3251e812..09478152ae6 100644 --- a/storage/ndb/include/kernel/signaldata/StartFragReq.hpp +++ b/storage/ndb/include/kernel/signaldata/StartFragReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/StartInfo.hpp b/storage/ndb/include/kernel/signaldata/StartInfo.hpp index 733082cae1e..17cc6a92a11 100644 --- a/storage/ndb/include/kernel/signaldata/StartInfo.hpp +++ b/storage/ndb/include/kernel/signaldata/StartInfo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/StartMe.hpp b/storage/ndb/include/kernel/signaldata/StartMe.hpp index 56b20efe951..ae5d21d7766 100644 --- a/storage/ndb/include/kernel/signaldata/StartMe.hpp +++ b/storage/ndb/include/kernel/signaldata/StartMe.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/StartOrd.hpp b/storage/ndb/include/kernel/signaldata/StartOrd.hpp index 03092719629..0d9e4d8ab4e 100644 --- a/storage/ndb/include/kernel/signaldata/StartOrd.hpp +++ b/storage/ndb/include/kernel/signaldata/StartOrd.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/StartPerm.hpp b/storage/ndb/include/kernel/signaldata/StartPerm.hpp index 16229f6552f..739d0540cfd 100644 --- a/storage/ndb/include/kernel/signaldata/StartPerm.hpp +++ b/storage/ndb/include/kernel/signaldata/StartPerm.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/StartRec.hpp b/storage/ndb/include/kernel/signaldata/StartRec.hpp index 24367c541ab..9a848bd23e7 100644 --- a/storage/ndb/include/kernel/signaldata/StartRec.hpp +++ b/storage/ndb/include/kernel/signaldata/StartRec.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/StartTo.hpp b/storage/ndb/include/kernel/signaldata/StartTo.hpp index f8ac256e98f..39a05f6e710 100644 --- a/storage/ndb/include/kernel/signaldata/StartTo.hpp +++ b/storage/ndb/include/kernel/signaldata/StartTo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/StopMe.hpp b/storage/ndb/include/kernel/signaldata/StopMe.hpp index 98531bffa00..bc1a47fa4d7 100644 --- a/storage/ndb/include/kernel/signaldata/StopMe.hpp +++ b/storage/ndb/include/kernel/signaldata/StopMe.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/StopPerm.hpp b/storage/ndb/include/kernel/signaldata/StopPerm.hpp index 145a120646a..faeb617b01a 100644 --- a/storage/ndb/include/kernel/signaldata/StopPerm.hpp +++ b/storage/ndb/include/kernel/signaldata/StopPerm.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/StopReq.hpp b/storage/ndb/include/kernel/signaldata/StopReq.hpp index a065f528735..c0bbd1dd589 100644 --- a/storage/ndb/include/kernel/signaldata/StopReq.hpp +++ b/storage/ndb/include/kernel/signaldata/StopReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/SumaImpl.hpp b/storage/ndb/include/kernel/signaldata/SumaImpl.hpp index 94775a5f3f4..6aa9ced23f7 100644 --- a/storage/ndb/include/kernel/signaldata/SumaImpl.hpp +++ b/storage/ndb/include/kernel/signaldata/SumaImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/SystemError.hpp b/storage/ndb/include/kernel/signaldata/SystemError.hpp index ac4ea154198..dd9f1e6acb8 100644 --- a/storage/ndb/include/kernel/signaldata/SystemError.hpp +++ b/storage/ndb/include/kernel/signaldata/SystemError.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TamperOrd.hpp b/storage/ndb/include/kernel/signaldata/TamperOrd.hpp index 34831704166..92fb4453641 100644 --- a/storage/ndb/include/kernel/signaldata/TamperOrd.hpp +++ b/storage/ndb/include/kernel/signaldata/TamperOrd.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TcCommit.hpp b/storage/ndb/include/kernel/signaldata/TcCommit.hpp index f0234e22ccf..1604c4827e3 100644 --- a/storage/ndb/include/kernel/signaldata/TcCommit.hpp +++ b/storage/ndb/include/kernel/signaldata/TcCommit.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TcContinueB.hpp b/storage/ndb/include/kernel/signaldata/TcContinueB.hpp index b21b4bb4e46..ad18cb00337 100644 --- a/storage/ndb/include/kernel/signaldata/TcContinueB.hpp +++ b/storage/ndb/include/kernel/signaldata/TcContinueB.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TcHbRep.hpp b/storage/ndb/include/kernel/signaldata/TcHbRep.hpp index da3b8d583d3..3d796dd37c5 100644 --- a/storage/ndb/include/kernel/signaldata/TcHbRep.hpp +++ b/storage/ndb/include/kernel/signaldata/TcHbRep.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TcIndx.hpp b/storage/ndb/include/kernel/signaldata/TcIndx.hpp index 4dc54e9b188..dd072af24a8 100644 --- a/storage/ndb/include/kernel/signaldata/TcIndx.hpp +++ b/storage/ndb/include/kernel/signaldata/TcIndx.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TcKeyConf.hpp b/storage/ndb/include/kernel/signaldata/TcKeyConf.hpp index fd8932c3c87..c80421d6a98 100644 --- a/storage/ndb/include/kernel/signaldata/TcKeyConf.hpp +++ b/storage/ndb/include/kernel/signaldata/TcKeyConf.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TcKeyFailConf.hpp b/storage/ndb/include/kernel/signaldata/TcKeyFailConf.hpp index 076f4f22a51..a8684695ce7 100644 --- a/storage/ndb/include/kernel/signaldata/TcKeyFailConf.hpp +++ b/storage/ndb/include/kernel/signaldata/TcKeyFailConf.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TcKeyRef.hpp b/storage/ndb/include/kernel/signaldata/TcKeyRef.hpp index 56f6cdae29d..49b32343388 100644 --- a/storage/ndb/include/kernel/signaldata/TcKeyRef.hpp +++ b/storage/ndb/include/kernel/signaldata/TcKeyRef.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TcKeyReq.hpp b/storage/ndb/include/kernel/signaldata/TcKeyReq.hpp index ee65b4baebf..6c912231159 100644 --- a/storage/ndb/include/kernel/signaldata/TcKeyReq.hpp +++ b/storage/ndb/include/kernel/signaldata/TcKeyReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TcRollbackRep.hpp b/storage/ndb/include/kernel/signaldata/TcRollbackRep.hpp index 609756605d5..20c80d64db1 100644 --- a/storage/ndb/include/kernel/signaldata/TcRollbackRep.hpp +++ b/storage/ndb/include/kernel/signaldata/TcRollbackRep.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TcSizeAltReq.hpp b/storage/ndb/include/kernel/signaldata/TcSizeAltReq.hpp index 12bf9b3c72d..b8aa182f601 100644 --- a/storage/ndb/include/kernel/signaldata/TcSizeAltReq.hpp +++ b/storage/ndb/include/kernel/signaldata/TcSizeAltReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TestOrd.hpp b/storage/ndb/include/kernel/signaldata/TestOrd.hpp index 44368a213fe..55f7a35c51f 100644 --- a/storage/ndb/include/kernel/signaldata/TestOrd.hpp +++ b/storage/ndb/include/kernel/signaldata/TestOrd.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TransIdAI.hpp b/storage/ndb/include/kernel/signaldata/TransIdAI.hpp index a2af9ed89cc..d26d7cd5d3e 100755 --- a/storage/ndb/include/kernel/signaldata/TransIdAI.hpp +++ b/storage/ndb/include/kernel/signaldata/TransIdAI.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TrigAttrInfo.hpp b/storage/ndb/include/kernel/signaldata/TrigAttrInfo.hpp index 79371258b3d..0d3a84a080c 100644 --- a/storage/ndb/include/kernel/signaldata/TrigAttrInfo.hpp +++ b/storage/ndb/include/kernel/signaldata/TrigAttrInfo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TsmanContinueB.hpp b/storage/ndb/include/kernel/signaldata/TsmanContinueB.hpp index edfcf4ac5d1..635a4da848c 100644 --- a/storage/ndb/include/kernel/signaldata/TsmanContinueB.hpp +++ b/storage/ndb/include/kernel/signaldata/TsmanContinueB.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TupCommit.hpp b/storage/ndb/include/kernel/signaldata/TupCommit.hpp index 11d0dbbb8d3..f99d7a1f946 100644 --- a/storage/ndb/include/kernel/signaldata/TupCommit.hpp +++ b/storage/ndb/include/kernel/signaldata/TupCommit.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TupFrag.hpp b/storage/ndb/include/kernel/signaldata/TupFrag.hpp index 106518dd47b..4d47cd3b50a 100644 --- a/storage/ndb/include/kernel/signaldata/TupFrag.hpp +++ b/storage/ndb/include/kernel/signaldata/TupFrag.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TupKey.hpp b/storage/ndb/include/kernel/signaldata/TupKey.hpp index e77dbd471e7..ea277c37eb5 100644 --- a/storage/ndb/include/kernel/signaldata/TupKey.hpp +++ b/storage/ndb/include/kernel/signaldata/TupKey.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TupSizeAltReq.hpp b/storage/ndb/include/kernel/signaldata/TupSizeAltReq.hpp index 1fb4eae8f51..106f62cd8ee 100644 --- a/storage/ndb/include/kernel/signaldata/TupSizeAltReq.hpp +++ b/storage/ndb/include/kernel/signaldata/TupSizeAltReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TuxBound.hpp b/storage/ndb/include/kernel/signaldata/TuxBound.hpp index c0f8fd82038..18f60de2402 100644 --- a/storage/ndb/include/kernel/signaldata/TuxBound.hpp +++ b/storage/ndb/include/kernel/signaldata/TuxBound.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TuxContinueB.hpp b/storage/ndb/include/kernel/signaldata/TuxContinueB.hpp index 87ac4d89211..ba76eb503ca 100644 --- a/storage/ndb/include/kernel/signaldata/TuxContinueB.hpp +++ b/storage/ndb/include/kernel/signaldata/TuxContinueB.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TuxMaint.hpp b/storage/ndb/include/kernel/signaldata/TuxMaint.hpp index 37237383e76..30b2f767bd3 100644 --- a/storage/ndb/include/kernel/signaldata/TuxMaint.hpp +++ b/storage/ndb/include/kernel/signaldata/TuxMaint.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/TuxSizeAltReq.hpp b/storage/ndb/include/kernel/signaldata/TuxSizeAltReq.hpp index bf2314d7159..4ebe849370f 100644 --- a/storage/ndb/include/kernel/signaldata/TuxSizeAltReq.hpp +++ b/storage/ndb/include/kernel/signaldata/TuxSizeAltReq.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/UpdateTo.hpp b/storage/ndb/include/kernel/signaldata/UpdateTo.hpp index e46fe1c1556..bca1d36b737 100644 --- a/storage/ndb/include/kernel/signaldata/UpdateTo.hpp +++ b/storage/ndb/include/kernel/signaldata/UpdateTo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/UpgradeStartup.hpp b/storage/ndb/include/kernel/signaldata/UpgradeStartup.hpp index 80f6a161e05..dbe63f7ba11 100644 --- a/storage/ndb/include/kernel/signaldata/UpgradeStartup.hpp +++ b/storage/ndb/include/kernel/signaldata/UpgradeStartup.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/UtilDelete.hpp b/storage/ndb/include/kernel/signaldata/UtilDelete.hpp index fb5c0ece0fd..41d009785df 100644 --- a/storage/ndb/include/kernel/signaldata/UtilDelete.hpp +++ b/storage/ndb/include/kernel/signaldata/UtilDelete.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/UtilExecute.hpp b/storage/ndb/include/kernel/signaldata/UtilExecute.hpp index 24a3d5874d2..672d821c974 100644 --- a/storage/ndb/include/kernel/signaldata/UtilExecute.hpp +++ b/storage/ndb/include/kernel/signaldata/UtilExecute.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/UtilLock.hpp b/storage/ndb/include/kernel/signaldata/UtilLock.hpp index 75a697714f0..842dde169a0 100644 --- a/storage/ndb/include/kernel/signaldata/UtilLock.hpp +++ b/storage/ndb/include/kernel/signaldata/UtilLock.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/UtilPrepare.hpp b/storage/ndb/include/kernel/signaldata/UtilPrepare.hpp index 4de9e61f699..08bc10b5ed9 100644 --- a/storage/ndb/include/kernel/signaldata/UtilPrepare.hpp +++ b/storage/ndb/include/kernel/signaldata/UtilPrepare.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/UtilRelease.hpp b/storage/ndb/include/kernel/signaldata/UtilRelease.hpp index 97623670399..692130e9ade 100644 --- a/storage/ndb/include/kernel/signaldata/UtilRelease.hpp +++ b/storage/ndb/include/kernel/signaldata/UtilRelease.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/UtilSequence.hpp b/storage/ndb/include/kernel/signaldata/UtilSequence.hpp index b24a6f83b7d..e62b4284f59 100644 --- a/storage/ndb/include/kernel/signaldata/UtilSequence.hpp +++ b/storage/ndb/include/kernel/signaldata/UtilSequence.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/signaldata/WaitGCP.hpp b/storage/ndb/include/kernel/signaldata/WaitGCP.hpp index 7e62debdf18..e9590019d5b 100644 --- a/storage/ndb/include/kernel/signaldata/WaitGCP.hpp +++ b/storage/ndb/include/kernel/signaldata/WaitGCP.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/kernel/trigger_definitions.h b/storage/ndb/include/kernel/trigger_definitions.h index b9644e040fa..34c45a2a89f 100644 --- a/storage/ndb/include/kernel/trigger_definitions.h +++ b/storage/ndb/include/kernel/trigger_definitions.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/logger/ConsoleLogHandler.hpp b/storage/ndb/include/logger/ConsoleLogHandler.hpp index cfcb598fb5e..f0a77020f68 100644 --- a/storage/ndb/include/logger/ConsoleLogHandler.hpp +++ b/storage/ndb/include/logger/ConsoleLogHandler.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/logger/FileLogHandler.hpp b/storage/ndb/include/logger/FileLogHandler.hpp index 36a35399ac8..79ca35a4767 100644 --- a/storage/ndb/include/logger/FileLogHandler.hpp +++ b/storage/ndb/include/logger/FileLogHandler.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/logger/LogHandler.hpp b/storage/ndb/include/logger/LogHandler.hpp index 98809280d0c..2dd3f25edf8 100644 --- a/storage/ndb/include/logger/LogHandler.hpp +++ b/storage/ndb/include/logger/LogHandler.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/logger/Logger.hpp b/storage/ndb/include/logger/Logger.hpp index 01bda35b050..775921e94c5 100644 --- a/storage/ndb/include/logger/Logger.hpp +++ b/storage/ndb/include/logger/Logger.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/logger/SysLogHandler.hpp b/storage/ndb/include/logger/SysLogHandler.hpp index e2d4af54e7a..6945befd314 100644 --- a/storage/ndb/include/logger/SysLogHandler.hpp +++ b/storage/ndb/include/logger/SysLogHandler.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/mgmapi/mgmapi.h b/storage/ndb/include/mgmapi/mgmapi.h index 0853f5a4422..0ccca42cc56 100644 --- a/storage/ndb/include/mgmapi/mgmapi.h +++ b/storage/ndb/include/mgmapi/mgmapi.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/mgmapi/mgmapi_config_parameters.h b/storage/ndb/include/mgmapi/mgmapi_config_parameters.h index ac2cbf060fd..8a354917fc9 100644 --- a/storage/ndb/include/mgmapi/mgmapi_config_parameters.h +++ b/storage/ndb/include/mgmapi/mgmapi_config_parameters.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2006 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/mgmapi/mgmapi_config_parameters_debug.h b/storage/ndb/include/mgmapi/mgmapi_config_parameters_debug.h index 20e10fb52db..d1cb5a201ae 100644 --- a/storage/ndb/include/mgmapi/mgmapi_config_parameters_debug.h +++ b/storage/ndb/include/mgmapi/mgmapi_config_parameters_debug.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/mgmapi/mgmapi_debug.h b/storage/ndb/include/mgmapi/mgmapi_debug.h index ceb1e6f4eb5..206176da7be 100644 --- a/storage/ndb/include/mgmapi/mgmapi_debug.h +++ b/storage/ndb/include/mgmapi/mgmapi_debug.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/mgmapi/mgmapi_error.h b/storage/ndb/include/mgmapi/mgmapi_error.h index 2d0aa1ded0f..97d180b0f3a 100644 --- a/storage/ndb/include/mgmapi/mgmapi_error.h +++ b/storage/ndb/include/mgmapi/mgmapi_error.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/mgmapi/ndbd_exit_codes.h b/storage/ndb/include/mgmapi/ndbd_exit_codes.h index 30578bdf722..bad923763a9 100644 --- a/storage/ndb/include/mgmapi/ndbd_exit_codes.h +++ b/storage/ndb/include/mgmapi/ndbd_exit_codes.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/mgmcommon/ConfigRetriever.hpp b/storage/ndb/include/mgmcommon/ConfigRetriever.hpp index 27a189c1563..e5ff63f4bd0 100644 --- a/storage/ndb/include/mgmcommon/ConfigRetriever.hpp +++ b/storage/ndb/include/mgmcommon/ConfigRetriever.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/mgmcommon/IPCConfig.hpp b/storage/ndb/include/mgmcommon/IPCConfig.hpp index 8e8b99eda73..495ae4d725d 100644 --- a/storage/ndb/include/mgmcommon/IPCConfig.hpp +++ b/storage/ndb/include/mgmcommon/IPCConfig.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/mgmcommon/MgmtErrorReporter.hpp b/storage/ndb/include/mgmcommon/MgmtErrorReporter.hpp index 2b5f2c9a6fd..159e77d3d9e 100644 --- a/storage/ndb/include/mgmcommon/MgmtErrorReporter.hpp +++ b/storage/ndb/include/mgmcommon/MgmtErrorReporter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndb_constants.h b/storage/ndb/include/ndb_constants.h index e2f8e17e913..90288bcc5ad 100644 --- a/storage/ndb/include/ndb_constants.h +++ b/storage/ndb/include/ndb_constants.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndb_global.h.in b/storage/ndb/include/ndb_global.h.in index 2fc594b3f5a..dc9bdeedff9 100644 --- a/storage/ndb/include/ndb_global.h.in +++ b/storage/ndb/include/ndb_global.h.in @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndb_init.h b/storage/ndb/include/ndb_init.h index 02db89adac4..3113123f019 100644 --- a/storage/ndb/include/ndb_init.h +++ b/storage/ndb/include/ndb_init.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndb_net.h b/storage/ndb/include/ndb_net.h index 3bb63f7e432..67423febde3 100644 --- a/storage/ndb/include/ndb_net.h +++ b/storage/ndb/include/ndb_net.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndb_types.h.in b/storage/ndb/include/ndb_types.h.in index 02db659e961..cf116825b65 100644 --- a/storage/ndb/include/ndb_types.h.in +++ b/storage/ndb/include/ndb_types.h.in @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndb_version.h.in b/storage/ndb/include/ndb_version.h.in index 97072315521..3282257a863 100644 --- a/storage/ndb/include/ndb_version.h.in +++ b/storage/ndb/include/ndb_version.h.in @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/Ndb.hpp b/storage/ndb/include/ndbapi/Ndb.hpp index f31638db283..1bbc002c79c 100644 --- a/storage/ndb/include/ndbapi/Ndb.hpp +++ b/storage/ndb/include/ndbapi/Ndb.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/NdbApi.hpp b/storage/ndb/include/ndbapi/NdbApi.hpp index ef2f5871fbf..bc5a5f760b7 100644 --- a/storage/ndb/include/ndbapi/NdbApi.hpp +++ b/storage/ndb/include/ndbapi/NdbApi.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/NdbBlob.hpp b/storage/ndb/include/ndbapi/NdbBlob.hpp index 9d4daf7498b..f20c08eb697 100644 --- a/storage/ndb/include/ndbapi/NdbBlob.hpp +++ b/storage/ndb/include/ndbapi/NdbBlob.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/NdbDictionary.hpp b/storage/ndb/include/ndbapi/NdbDictionary.hpp index 0e782ba9214..2e64658b6a4 100644 --- a/storage/ndb/include/ndbapi/NdbDictionary.hpp +++ b/storage/ndb/include/ndbapi/NdbDictionary.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/NdbError.hpp b/storage/ndb/include/ndbapi/NdbError.hpp index aa27caf78f9..273cb3aef77 100644 --- a/storage/ndb/include/ndbapi/NdbError.hpp +++ b/storage/ndb/include/ndbapi/NdbError.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/NdbIndexOperation.hpp b/storage/ndb/include/ndbapi/NdbIndexOperation.hpp index 49e55f54f1a..49de7704ffa 100644 --- a/storage/ndb/include/ndbapi/NdbIndexOperation.hpp +++ b/storage/ndb/include/ndbapi/NdbIndexOperation.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/NdbIndexScanOperation.hpp b/storage/ndb/include/ndbapi/NdbIndexScanOperation.hpp index 38f353010a9..cd58b7c10c5 100644 --- a/storage/ndb/include/ndbapi/NdbIndexScanOperation.hpp +++ b/storage/ndb/include/ndbapi/NdbIndexScanOperation.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/NdbIndexStat.hpp b/storage/ndb/include/ndbapi/NdbIndexStat.hpp index 9818ace9bde..c300d401f3a 100644 --- a/storage/ndb/include/ndbapi/NdbIndexStat.hpp +++ b/storage/ndb/include/ndbapi/NdbIndexStat.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/NdbPool.hpp b/storage/ndb/include/ndbapi/NdbPool.hpp index 44b6d7488f0..d7c49f7e868 100644 --- a/storage/ndb/include/ndbapi/NdbPool.hpp +++ b/storage/ndb/include/ndbapi/NdbPool.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/NdbRecAttr.hpp b/storage/ndb/include/ndbapi/NdbRecAttr.hpp index 121339e470b..d47e0ead87d 100644 --- a/storage/ndb/include/ndbapi/NdbRecAttr.hpp +++ b/storage/ndb/include/ndbapi/NdbRecAttr.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/NdbReceiver.hpp b/storage/ndb/include/ndbapi/NdbReceiver.hpp index b8abd281496..20ec5d0690e 100644 --- a/storage/ndb/include/ndbapi/NdbReceiver.hpp +++ b/storage/ndb/include/ndbapi/NdbReceiver.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/NdbScanFilter.hpp b/storage/ndb/include/ndbapi/NdbScanFilter.hpp index 4527012a6c4..9274160ded5 100644 --- a/storage/ndb/include/ndbapi/NdbScanFilter.hpp +++ b/storage/ndb/include/ndbapi/NdbScanFilter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/NdbScanOperation.hpp b/storage/ndb/include/ndbapi/NdbScanOperation.hpp index bc24b782add..d1e0670fc1f 100644 --- a/storage/ndb/include/ndbapi/NdbScanOperation.hpp +++ b/storage/ndb/include/ndbapi/NdbScanOperation.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/NdbTransaction.hpp b/storage/ndb/include/ndbapi/NdbTransaction.hpp index 6a057655398..d878bc75f65 100644 --- a/storage/ndb/include/ndbapi/NdbTransaction.hpp +++ b/storage/ndb/include/ndbapi/NdbTransaction.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/ndb_cluster_connection.hpp b/storage/ndb/include/ndbapi/ndb_cluster_connection.hpp index 80bfe7461f8..72d8c7899c3 100644 --- a/storage/ndb/include/ndbapi/ndb_cluster_connection.hpp +++ b/storage/ndb/include/ndbapi/ndb_cluster_connection.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/ndb_opt_defaults.h b/storage/ndb/include/ndbapi/ndb_opt_defaults.h index f29e2cb40d5..5ce8611bbe2 100644 --- a/storage/ndb/include/ndbapi/ndb_opt_defaults.h +++ b/storage/ndb/include/ndbapi/ndb_opt_defaults.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/ndbapi_limits.h b/storage/ndb/include/ndbapi/ndbapi_limits.h index 98551866edc..02d204673d6 100644 --- a/storage/ndb/include/ndbapi/ndbapi_limits.h +++ b/storage/ndb/include/ndbapi/ndbapi_limits.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/ndbapi/ndberror.h b/storage/ndb/include/ndbapi/ndberror.h index 8d7701f035a..0b963a02267 100644 --- a/storage/ndb/include/ndbapi/ndberror.h +++ b/storage/ndb/include/ndbapi/ndberror.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/newtonapi/dba.h b/storage/ndb/include/newtonapi/dba.h index b0231378a2b..ddae237f5c8 100644 --- a/storage/ndb/include/newtonapi/dba.h +++ b/storage/ndb/include/newtonapi/dba.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/newtonapi/defs/pcn_types.h b/storage/ndb/include/newtonapi/defs/pcn_types.h index 9e8b2285023..9f026e9c40e 100644 --- a/storage/ndb/include/newtonapi/defs/pcn_types.h +++ b/storage/ndb/include/newtonapi/defs/pcn_types.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/NdbCondition.h b/storage/ndb/include/portlib/NdbCondition.h index dbc35b0b4ab..e3128628e2e 100644 --- a/storage/ndb/include/portlib/NdbCondition.h +++ b/storage/ndb/include/portlib/NdbCondition.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/NdbConfig.h b/storage/ndb/include/portlib/NdbConfig.h index 2b6c931da72..2a7fc582393 100644 --- a/storage/ndb/include/portlib/NdbConfig.h +++ b/storage/ndb/include/portlib/NdbConfig.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/NdbDaemon.h b/storage/ndb/include/portlib/NdbDaemon.h index b6e39321e38..11fbdfa9cf6 100644 --- a/storage/ndb/include/portlib/NdbDaemon.h +++ b/storage/ndb/include/portlib/NdbDaemon.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/NdbEnv.h b/storage/ndb/include/portlib/NdbEnv.h index c6590264e23..69630cae1a0 100644 --- a/storage/ndb/include/portlib/NdbEnv.h +++ b/storage/ndb/include/portlib/NdbEnv.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/NdbHost.h b/storage/ndb/include/portlib/NdbHost.h index 5464a024a62..bff7a95c1a5 100644 --- a/storage/ndb/include/portlib/NdbHost.h +++ b/storage/ndb/include/portlib/NdbHost.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/NdbMain.h b/storage/ndb/include/portlib/NdbMain.h index d49411ec8c9..e318ecaece4 100644 --- a/storage/ndb/include/portlib/NdbMain.h +++ b/storage/ndb/include/portlib/NdbMain.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/NdbMem.h b/storage/ndb/include/portlib/NdbMem.h index d271c976862..e5f66964bde 100644 --- a/storage/ndb/include/portlib/NdbMem.h +++ b/storage/ndb/include/portlib/NdbMem.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/NdbMutex.h b/storage/ndb/include/portlib/NdbMutex.h index 0f04511ca37..8cfcdd4063e 100644 --- a/storage/ndb/include/portlib/NdbMutex.h +++ b/storage/ndb/include/portlib/NdbMutex.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/NdbSleep.h b/storage/ndb/include/portlib/NdbSleep.h index a17f3e6a8b0..803522dd5a8 100644 --- a/storage/ndb/include/portlib/NdbSleep.h +++ b/storage/ndb/include/portlib/NdbSleep.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/NdbTCP.h b/storage/ndb/include/portlib/NdbTCP.h index b2f0b12efb4..76a9fd80366 100644 --- a/storage/ndb/include/portlib/NdbTCP.h +++ b/storage/ndb/include/portlib/NdbTCP.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/NdbThread.h b/storage/ndb/include/portlib/NdbThread.h index 373e2218c6c..759f07fa8a0 100644 --- a/storage/ndb/include/portlib/NdbThread.h +++ b/storage/ndb/include/portlib/NdbThread.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/NdbTick.h b/storage/ndb/include/portlib/NdbTick.h index 70c36fdfd1e..07774b7783c 100644 --- a/storage/ndb/include/portlib/NdbTick.h +++ b/storage/ndb/include/portlib/NdbTick.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/PortDefs.h b/storage/ndb/include/portlib/PortDefs.h index 87b87b497a2..72c8695a6d5 100644 --- a/storage/ndb/include/portlib/PortDefs.h +++ b/storage/ndb/include/portlib/PortDefs.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/portlib/prefetch.h b/storage/ndb/include/portlib/prefetch.h index f098c2ba6c0..217f4befcd4 100644 --- a/storage/ndb/include/portlib/prefetch.h +++ b/storage/ndb/include/portlib/prefetch.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/transporter/TransporterCallback.hpp b/storage/ndb/include/transporter/TransporterCallback.hpp index 076d0de44c0..2c09674410c 100644 --- a/storage/ndb/include/transporter/TransporterCallback.hpp +++ b/storage/ndb/include/transporter/TransporterCallback.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/transporter/TransporterDefinitions.hpp b/storage/ndb/include/transporter/TransporterDefinitions.hpp index 003824d01e8..87011d3a3e9 100644 --- a/storage/ndb/include/transporter/TransporterDefinitions.hpp +++ b/storage/ndb/include/transporter/TransporterDefinitions.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/transporter/TransporterRegistry.hpp b/storage/ndb/include/transporter/TransporterRegistry.hpp index 4a639d05b95..1020e935c2d 100644 --- a/storage/ndb/include/transporter/TransporterRegistry.hpp +++ b/storage/ndb/include/transporter/TransporterRegistry.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/BaseString.hpp b/storage/ndb/include/util/BaseString.hpp index 0c41f254edc..14cfdb2fa88 100644 --- a/storage/ndb/include/util/BaseString.hpp +++ b/storage/ndb/include/util/BaseString.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/Bitmask.hpp b/storage/ndb/include/util/Bitmask.hpp index d1663b7c76d..09ff69cc43e 100644 --- a/storage/ndb/include/util/Bitmask.hpp +++ b/storage/ndb/include/util/Bitmask.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/File.hpp b/storage/ndb/include/util/File.hpp index b9d348683ec..2de15794ec7 100644 --- a/storage/ndb/include/util/File.hpp +++ b/storage/ndb/include/util/File.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/InputStream.hpp b/storage/ndb/include/util/InputStream.hpp index 3e696eac732..0e09ab3869b 100644 --- a/storage/ndb/include/util/InputStream.hpp +++ b/storage/ndb/include/util/InputStream.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/NdbAutoPtr.hpp b/storage/ndb/include/util/NdbAutoPtr.hpp index 5210fbc6dde..e4d04478224 100644 --- a/storage/ndb/include/util/NdbAutoPtr.hpp +++ b/storage/ndb/include/util/NdbAutoPtr.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/NdbOut.hpp b/storage/ndb/include/util/NdbOut.hpp index 6afb3af87e3..dd6082d146a 100644 --- a/storage/ndb/include/util/NdbOut.hpp +++ b/storage/ndb/include/util/NdbOut.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/NdbSqlUtil.hpp b/storage/ndb/include/util/NdbSqlUtil.hpp index 8d063f1908b..571f381ff03 100644 --- a/storage/ndb/include/util/NdbSqlUtil.hpp +++ b/storage/ndb/include/util/NdbSqlUtil.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/OutputStream.hpp b/storage/ndb/include/util/OutputStream.hpp index 05fc69a46c3..07d09ee5d29 100644 --- a/storage/ndb/include/util/OutputStream.hpp +++ b/storage/ndb/include/util/OutputStream.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/Parser.hpp b/storage/ndb/include/util/Parser.hpp index 5be18bbcc90..43121d5bca9 100644 --- a/storage/ndb/include/util/Parser.hpp +++ b/storage/ndb/include/util/Parser.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/Properties.hpp b/storage/ndb/include/util/Properties.hpp index 3533d710662..d14795c94f9 100644 --- a/storage/ndb/include/util/Properties.hpp +++ b/storage/ndb/include/util/Properties.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/SimpleProperties.hpp b/storage/ndb/include/util/SimpleProperties.hpp index 18acf689415..4b8be6ae449 100644 --- a/storage/ndb/include/util/SimpleProperties.hpp +++ b/storage/ndb/include/util/SimpleProperties.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/SocketAuthenticator.hpp b/storage/ndb/include/util/SocketAuthenticator.hpp index e76af30dc35..24f0f11eb05 100644 --- a/storage/ndb/include/util/SocketAuthenticator.hpp +++ b/storage/ndb/include/util/SocketAuthenticator.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/SocketClient.hpp b/storage/ndb/include/util/SocketClient.hpp index bb8d9b9ac41..429cf310e69 100644 --- a/storage/ndb/include/util/SocketClient.hpp +++ b/storage/ndb/include/util/SocketClient.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/SocketServer.hpp b/storage/ndb/include/util/SocketServer.hpp index 8b49dc6db4e..73892d962aa 100644 --- a/storage/ndb/include/util/SocketServer.hpp +++ b/storage/ndb/include/util/SocketServer.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/UtilBuffer.hpp b/storage/ndb/include/util/UtilBuffer.hpp index acc8f7133f0..a0f4e0dfd38 100644 --- a/storage/ndb/include/util/UtilBuffer.hpp +++ b/storage/ndb/include/util/UtilBuffer.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/Vector.hpp b/storage/ndb/include/util/Vector.hpp index 7ae4228985d..1950b37f30e 100644 --- a/storage/ndb/include/util/Vector.hpp +++ b/storage/ndb/include/util/Vector.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/basestring_vsnprintf.h b/storage/ndb/include/util/basestring_vsnprintf.h index ade90b3f678..ed700e47520 100644 --- a/storage/ndb/include/util/basestring_vsnprintf.h +++ b/storage/ndb/include/util/basestring_vsnprintf.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/md5_hash.hpp b/storage/ndb/include/util/md5_hash.hpp index 932d71ee22e..c6ff2230f89 100644 --- a/storage/ndb/include/util/md5_hash.hpp +++ b/storage/ndb/include/util/md5_hash.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/ndb_opts.h b/storage/ndb/include/util/ndb_opts.h index f18bb9646cc..470579c115a 100644 --- a/storage/ndb/include/util/ndb_opts.h +++ b/storage/ndb/include/util/ndb_opts.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/ndb_rand.h b/storage/ndb/include/util/ndb_rand.h index 1521ca9c4ff..815ac904ec8 100644 --- a/storage/ndb/include/util/ndb_rand.h +++ b/storage/ndb/include/util/ndb_rand.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/random.h b/storage/ndb/include/util/random.h index b448e9c2b01..5e74c4d0710 100644 --- a/storage/ndb/include/util/random.h +++ b/storage/ndb/include/util/random.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/socket_io.h b/storage/ndb/include/util/socket_io.h index f76b6790b19..23eb0aaae35 100644 --- a/storage/ndb/include/util/socket_io.h +++ b/storage/ndb/include/util/socket_io.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/uucode.h b/storage/ndb/include/util/uucode.h index 3c10888a395..3210bbf0dcb 100644 --- a/storage/ndb/include/util/uucode.h +++ b/storage/ndb/include/util/uucode.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/include/util/version.h b/storage/ndb/include/util/version.h index 9ea18ecd9d9..6056b0f37e3 100644 --- a/storage/ndb/include/util/version.h +++ b/storage/ndb/include/util/version.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/ndbapi-examples/mgmapi_logevent/main.cpp b/storage/ndb/ndbapi-examples/mgmapi_logevent/main.cpp index fbe5397c5cf..b58891e97d8 100644 --- a/storage/ndb/ndbapi-examples/mgmapi_logevent/main.cpp +++ b/storage/ndb/ndbapi-examples/mgmapi_logevent/main.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/ndbapi-examples/mgmapi_logevent2/main.cpp b/storage/ndb/ndbapi-examples/mgmapi_logevent2/main.cpp index 5a2241fc05f..37bf23749a9 100644 --- a/storage/ndb/ndbapi-examples/mgmapi_logevent2/main.cpp +++ b/storage/ndb/ndbapi-examples/mgmapi_logevent2/main.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/ndbapi-examples/ndbapi_async/ndbapi_async.cpp b/storage/ndb/ndbapi-examples/ndbapi_async/ndbapi_async.cpp index 864b2baa2ed..9f6d43cddb9 100644 --- a/storage/ndb/ndbapi-examples/ndbapi_async/ndbapi_async.cpp +++ b/storage/ndb/ndbapi-examples/ndbapi_async/ndbapi_async.cpp @@ -1,6 +1,6 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/ndbapi-examples/ndbapi_async1/ndbapi_async1.cpp b/storage/ndb/ndbapi-examples/ndbapi_async1/ndbapi_async1.cpp index 1f19f36d674..60c531547d4 100644 --- a/storage/ndb/ndbapi-examples/ndbapi_async1/ndbapi_async1.cpp +++ b/storage/ndb/ndbapi-examples/ndbapi_async1/ndbapi_async1.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/ndbapi-examples/ndbapi_event/ndbapi_event.cpp b/storage/ndb/ndbapi-examples/ndbapi_event/ndbapi_event.cpp index b1aef8d3588..93add04956a 100644 --- a/storage/ndb/ndbapi-examples/ndbapi_event/ndbapi_event.cpp +++ b/storage/ndb/ndbapi-examples/ndbapi_event/ndbapi_event.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/ndbapi-examples/ndbapi_retries/ndbapi_retries.cpp b/storage/ndb/ndbapi-examples/ndbapi_retries/ndbapi_retries.cpp index f8df5bf0f48..382dd2dd1d0 100644 --- a/storage/ndb/ndbapi-examples/ndbapi_retries/ndbapi_retries.cpp +++ b/storage/ndb/ndbapi-examples/ndbapi_retries/ndbapi_retries.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/ndbapi-examples/ndbapi_scan/ndbapi_scan.cpp b/storage/ndb/ndbapi-examples/ndbapi_scan/ndbapi_scan.cpp index be62d19dbc4..b189c2105b1 100644 --- a/storage/ndb/ndbapi-examples/ndbapi_scan/ndbapi_scan.cpp +++ b/storage/ndb/ndbapi-examples/ndbapi_scan/ndbapi_scan.cpp @@ -1,5 +1,5 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/ndbapi-examples/ndbapi_simple/ndbapi_simple.cpp b/storage/ndb/ndbapi-examples/ndbapi_simple/ndbapi_simple.cpp index 4e82fc3e42b..d4b7510f0f9 100644 --- a/storage/ndb/ndbapi-examples/ndbapi_simple/ndbapi_simple.cpp +++ b/storage/ndb/ndbapi-examples/ndbapi_simple/ndbapi_simple.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/ndbapi-examples/ndbapi_simple_dual/main.cpp b/storage/ndb/ndbapi-examples/ndbapi_simple_dual/main.cpp index 5943894a3ee..a936779bec7 100644 --- a/storage/ndb/ndbapi-examples/ndbapi_simple_dual/main.cpp +++ b/storage/ndb/ndbapi-examples/ndbapi_simple_dual/main.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/ndbapi-examples/ndbapi_simple_index/main.cpp b/storage/ndb/ndbapi-examples/ndbapi_simple_index/main.cpp index 440face79ae..991de0308aa 100644 --- a/storage/ndb/ndbapi-examples/ndbapi_simple_index/main.cpp +++ b/storage/ndb/ndbapi-examples/ndbapi_simple_index/main.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/Makefile.am b/storage/ndb/src/Makefile.am index 627347daf02..572571e776b 100644 --- a/storage/ndb/src/Makefile.am +++ b/storage/ndb/src/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2005 MySQL AB +# Copyright (c) 2004-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/Makefile.am b/storage/ndb/src/common/Makefile.am index 9d601c7a18a..738732f9a28 100644 --- a/storage/ndb/src/common/Makefile.am +++ b/storage/ndb/src/common/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/BlockNames.cpp b/storage/ndb/src/common/debugger/BlockNames.cpp index 86acbc47198..360edddab16 100644 --- a/storage/ndb/src/common/debugger/BlockNames.cpp +++ b/storage/ndb/src/common/debugger/BlockNames.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/DebuggerNames.cpp b/storage/ndb/src/common/debugger/DebuggerNames.cpp index ba32ac6e6b8..f10cca02499 100644 --- a/storage/ndb/src/common/debugger/DebuggerNames.cpp +++ b/storage/ndb/src/common/debugger/DebuggerNames.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/EventLogger.cpp b/storage/ndb/src/common/debugger/EventLogger.cpp index 068b0c6ac18..fec9d2a2d73 100644 --- a/storage/ndb/src/common/debugger/EventLogger.cpp +++ b/storage/ndb/src/common/debugger/EventLogger.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/GrepError.cpp b/storage/ndb/src/common/debugger/GrepError.cpp index 091c7da0978..aee8e444a92 100644 --- a/storage/ndb/src/common/debugger/GrepError.cpp +++ b/storage/ndb/src/common/debugger/GrepError.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/Makefile.am b/storage/ndb/src/common/debugger/Makefile.am index 56910ee8ea4..0a09afa247e 100644 --- a/storage/ndb/src/common/debugger/Makefile.am +++ b/storage/ndb/src/common/debugger/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/SignalLoggerManager.cpp b/storage/ndb/src/common/debugger/SignalLoggerManager.cpp index 48cacb6bc1a..271c39cf864 100644 --- a/storage/ndb/src/common/debugger/SignalLoggerManager.cpp +++ b/storage/ndb/src/common/debugger/SignalLoggerManager.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/AccLock.cpp b/storage/ndb/src/common/debugger/signaldata/AccLock.cpp index 0b37e1bd0d7..c5511094bb1 100644 --- a/storage/ndb/src/common/debugger/signaldata/AccLock.cpp +++ b/storage/ndb/src/common/debugger/signaldata/AccLock.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/AlterIndx.cpp b/storage/ndb/src/common/debugger/signaldata/AlterIndx.cpp index 1ac5b7fb3e8..8e7cedc4fc9 100644 --- a/storage/ndb/src/common/debugger/signaldata/AlterIndx.cpp +++ b/storage/ndb/src/common/debugger/signaldata/AlterIndx.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/AlterTab.cpp b/storage/ndb/src/common/debugger/signaldata/AlterTab.cpp index f9b6df1f4c0..03d6b3cf973 100644 --- a/storage/ndb/src/common/debugger/signaldata/AlterTab.cpp +++ b/storage/ndb/src/common/debugger/signaldata/AlterTab.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/AlterTable.cpp b/storage/ndb/src/common/debugger/signaldata/AlterTable.cpp index 8e23bd72db3..a390dc5d7b9 100644 --- a/storage/ndb/src/common/debugger/signaldata/AlterTable.cpp +++ b/storage/ndb/src/common/debugger/signaldata/AlterTable.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/AlterTrig.cpp b/storage/ndb/src/common/debugger/signaldata/AlterTrig.cpp index cdd7ee2fbf2..50463f0a991 100644 --- a/storage/ndb/src/common/debugger/signaldata/AlterTrig.cpp +++ b/storage/ndb/src/common/debugger/signaldata/AlterTrig.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/BackupImpl.cpp b/storage/ndb/src/common/debugger/signaldata/BackupImpl.cpp index 4bbac738826..05730c3d576 100644 --- a/storage/ndb/src/common/debugger/signaldata/BackupImpl.cpp +++ b/storage/ndb/src/common/debugger/signaldata/BackupImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/BackupSignalData.cpp b/storage/ndb/src/common/debugger/signaldata/BackupSignalData.cpp index d196233071d..14cc4fbe9f0 100644 --- a/storage/ndb/src/common/debugger/signaldata/BackupSignalData.cpp +++ b/storage/ndb/src/common/debugger/signaldata/BackupSignalData.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/CloseComReqConf.cpp b/storage/ndb/src/common/debugger/signaldata/CloseComReqConf.cpp index 76284517ac7..f5a2c16789d 100644 --- a/storage/ndb/src/common/debugger/signaldata/CloseComReqConf.cpp +++ b/storage/ndb/src/common/debugger/signaldata/CloseComReqConf.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/CntrStart.cpp b/storage/ndb/src/common/debugger/signaldata/CntrStart.cpp index 813bcef96d6..e25de741691 100644 --- a/storage/ndb/src/common/debugger/signaldata/CntrStart.cpp +++ b/storage/ndb/src/common/debugger/signaldata/CntrStart.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/ContinueB.cpp b/storage/ndb/src/common/debugger/signaldata/ContinueB.cpp index cd94abd6f2c..e192071a9b9 100644 --- a/storage/ndb/src/common/debugger/signaldata/ContinueB.cpp +++ b/storage/ndb/src/common/debugger/signaldata/ContinueB.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/CopyGCI.cpp b/storage/ndb/src/common/debugger/signaldata/CopyGCI.cpp index 6ea5f422fda..61b0de57be5 100644 --- a/storage/ndb/src/common/debugger/signaldata/CopyGCI.cpp +++ b/storage/ndb/src/common/debugger/signaldata/CopyGCI.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/CreateEvnt.cpp b/storage/ndb/src/common/debugger/signaldata/CreateEvnt.cpp index d957b5039ca..395791145e3 100644 --- a/storage/ndb/src/common/debugger/signaldata/CreateEvnt.cpp +++ b/storage/ndb/src/common/debugger/signaldata/CreateEvnt.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/CreateFragmentation.cpp b/storage/ndb/src/common/debugger/signaldata/CreateFragmentation.cpp index ef4c277dc69..037ed5fb159 100644 --- a/storage/ndb/src/common/debugger/signaldata/CreateFragmentation.cpp +++ b/storage/ndb/src/common/debugger/signaldata/CreateFragmentation.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/CreateIndx.cpp b/storage/ndb/src/common/debugger/signaldata/CreateIndx.cpp index a72d51aa4e2..6c22cd03640 100644 --- a/storage/ndb/src/common/debugger/signaldata/CreateIndx.cpp +++ b/storage/ndb/src/common/debugger/signaldata/CreateIndx.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/CreateTrig.cpp b/storage/ndb/src/common/debugger/signaldata/CreateTrig.cpp index 14a980ed5f7..c26bfe45f73 100644 --- a/storage/ndb/src/common/debugger/signaldata/CreateTrig.cpp +++ b/storage/ndb/src/common/debugger/signaldata/CreateTrig.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp b/storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp index dae5527dc5e..a2087ec3813 100644 --- a/storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp +++ b/storage/ndb/src/common/debugger/signaldata/DictTabInfo.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/DihContinueB.cpp b/storage/ndb/src/common/debugger/signaldata/DihContinueB.cpp index 30b15fe7de1..9985b53d871 100644 --- a/storage/ndb/src/common/debugger/signaldata/DihContinueB.cpp +++ b/storage/ndb/src/common/debugger/signaldata/DihContinueB.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/DihSwitchReplicaReq.cpp b/storage/ndb/src/common/debugger/signaldata/DihSwitchReplicaReq.cpp index ce8c05b61e0..e0dade885a3 100644 --- a/storage/ndb/src/common/debugger/signaldata/DihSwitchReplicaReq.cpp +++ b/storage/ndb/src/common/debugger/signaldata/DihSwitchReplicaReq.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/DisconnectRep.cpp b/storage/ndb/src/common/debugger/signaldata/DisconnectRep.cpp index 10efb20f393..34e6fe14d50 100644 --- a/storage/ndb/src/common/debugger/signaldata/DisconnectRep.cpp +++ b/storage/ndb/src/common/debugger/signaldata/DisconnectRep.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/DropIndx.cpp b/storage/ndb/src/common/debugger/signaldata/DropIndx.cpp index 39d0333399e..7ff132ba35c 100644 --- a/storage/ndb/src/common/debugger/signaldata/DropIndx.cpp +++ b/storage/ndb/src/common/debugger/signaldata/DropIndx.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/DropTab.cpp b/storage/ndb/src/common/debugger/signaldata/DropTab.cpp index 2715239119d..cce4aaaf80a 100644 --- a/storage/ndb/src/common/debugger/signaldata/DropTab.cpp +++ b/storage/ndb/src/common/debugger/signaldata/DropTab.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/DropTrig.cpp b/storage/ndb/src/common/debugger/signaldata/DropTrig.cpp index 6e4caae01ab..cd5f23149fc 100644 --- a/storage/ndb/src/common/debugger/signaldata/DropTrig.cpp +++ b/storage/ndb/src/common/debugger/signaldata/DropTrig.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/FailRep.cpp b/storage/ndb/src/common/debugger/signaldata/FailRep.cpp index fa2a431e7c5..b735cfea7e9 100644 --- a/storage/ndb/src/common/debugger/signaldata/FailRep.cpp +++ b/storage/ndb/src/common/debugger/signaldata/FailRep.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/FireTrigOrd.cpp b/storage/ndb/src/common/debugger/signaldata/FireTrigOrd.cpp index b1bf52542b7..a4382b76026 100644 --- a/storage/ndb/src/common/debugger/signaldata/FireTrigOrd.cpp +++ b/storage/ndb/src/common/debugger/signaldata/FireTrigOrd.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/FsAppendReq.cpp b/storage/ndb/src/common/debugger/signaldata/FsAppendReq.cpp index a574a83b7ab..ee97b222048 100644 --- a/storage/ndb/src/common/debugger/signaldata/FsAppendReq.cpp +++ b/storage/ndb/src/common/debugger/signaldata/FsAppendReq.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/FsCloseReq.cpp b/storage/ndb/src/common/debugger/signaldata/FsCloseReq.cpp index 72c2a474e75..65d12f0aa74 100644 --- a/storage/ndb/src/common/debugger/signaldata/FsCloseReq.cpp +++ b/storage/ndb/src/common/debugger/signaldata/FsCloseReq.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/FsConf.cpp b/storage/ndb/src/common/debugger/signaldata/FsConf.cpp index ed9124fcfeb..6cdf512b186 100644 --- a/storage/ndb/src/common/debugger/signaldata/FsConf.cpp +++ b/storage/ndb/src/common/debugger/signaldata/FsConf.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/FsOpenReq.cpp b/storage/ndb/src/common/debugger/signaldata/FsOpenReq.cpp index 0029be79fdd..c80e7b4a535 100644 --- a/storage/ndb/src/common/debugger/signaldata/FsOpenReq.cpp +++ b/storage/ndb/src/common/debugger/signaldata/FsOpenReq.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/FsReadWriteReq.cpp b/storage/ndb/src/common/debugger/signaldata/FsReadWriteReq.cpp index e1331d2353f..66a2abe2484 100644 --- a/storage/ndb/src/common/debugger/signaldata/FsReadWriteReq.cpp +++ b/storage/ndb/src/common/debugger/signaldata/FsReadWriteReq.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/FsRef.cpp b/storage/ndb/src/common/debugger/signaldata/FsRef.cpp index 3d9eccc9407..8b54d260bf1 100644 --- a/storage/ndb/src/common/debugger/signaldata/FsRef.cpp +++ b/storage/ndb/src/common/debugger/signaldata/FsRef.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/GCPSave.cpp b/storage/ndb/src/common/debugger/signaldata/GCPSave.cpp index b1dbb5887dd..b4086e692ba 100644 --- a/storage/ndb/src/common/debugger/signaldata/GCPSave.cpp +++ b/storage/ndb/src/common/debugger/signaldata/GCPSave.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/IndxAttrInfo.cpp b/storage/ndb/src/common/debugger/signaldata/IndxAttrInfo.cpp index a4bc3f04c04..734dd764723 100755 --- a/storage/ndb/src/common/debugger/signaldata/IndxAttrInfo.cpp +++ b/storage/ndb/src/common/debugger/signaldata/IndxAttrInfo.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/IndxKeyInfo.cpp b/storage/ndb/src/common/debugger/signaldata/IndxKeyInfo.cpp index 78e3a98f6ce..b03de35bac7 100755 --- a/storage/ndb/src/common/debugger/signaldata/IndxKeyInfo.cpp +++ b/storage/ndb/src/common/debugger/signaldata/IndxKeyInfo.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/LCP.cpp b/storage/ndb/src/common/debugger/signaldata/LCP.cpp index 946c43c8d7e..ad292da1254 100644 --- a/storage/ndb/src/common/debugger/signaldata/LCP.cpp +++ b/storage/ndb/src/common/debugger/signaldata/LCP.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/LqhFrag.cpp b/storage/ndb/src/common/debugger/signaldata/LqhFrag.cpp index 0d7a2cf1e4d..d1dcd3eba86 100644 --- a/storage/ndb/src/common/debugger/signaldata/LqhFrag.cpp +++ b/storage/ndb/src/common/debugger/signaldata/LqhFrag.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/LqhKey.cpp b/storage/ndb/src/common/debugger/signaldata/LqhKey.cpp index ca17c81ec17..d3f09b3a938 100644 --- a/storage/ndb/src/common/debugger/signaldata/LqhKey.cpp +++ b/storage/ndb/src/common/debugger/signaldata/LqhKey.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/LqhTrans.cpp b/storage/ndb/src/common/debugger/signaldata/LqhTrans.cpp index f413ccc6311..457b0cf8037 100644 --- a/storage/ndb/src/common/debugger/signaldata/LqhTrans.cpp +++ b/storage/ndb/src/common/debugger/signaldata/LqhTrans.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/Makefile.am b/storage/ndb/src/common/debugger/signaldata/Makefile.am index 280cd6a5a39..839ce81ac77 100644 --- a/storage/ndb/src/common/debugger/signaldata/Makefile.am +++ b/storage/ndb/src/common/debugger/signaldata/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/MasterLCP.cpp b/storage/ndb/src/common/debugger/signaldata/MasterLCP.cpp index 620695a91a4..92539e3c025 100644 --- a/storage/ndb/src/common/debugger/signaldata/MasterLCP.cpp +++ b/storage/ndb/src/common/debugger/signaldata/MasterLCP.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/NFCompleteRep.cpp b/storage/ndb/src/common/debugger/signaldata/NFCompleteRep.cpp index 800dc074aa7..88520894382 100644 --- a/storage/ndb/src/common/debugger/signaldata/NFCompleteRep.cpp +++ b/storage/ndb/src/common/debugger/signaldata/NFCompleteRep.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/NdbSttor.cpp b/storage/ndb/src/common/debugger/signaldata/NdbSttor.cpp index 3a67e2e7806..8ec521b684a 100644 --- a/storage/ndb/src/common/debugger/signaldata/NdbSttor.cpp +++ b/storage/ndb/src/common/debugger/signaldata/NdbSttor.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/NdbfsContinueB.cpp b/storage/ndb/src/common/debugger/signaldata/NdbfsContinueB.cpp index cd592533638..e96c7d54815 100644 --- a/storage/ndb/src/common/debugger/signaldata/NdbfsContinueB.cpp +++ b/storage/ndb/src/common/debugger/signaldata/NdbfsContinueB.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/PackedSignal.cpp b/storage/ndb/src/common/debugger/signaldata/PackedSignal.cpp index a5f585c23f0..92c7047a4d3 100644 --- a/storage/ndb/src/common/debugger/signaldata/PackedSignal.cpp +++ b/storage/ndb/src/common/debugger/signaldata/PackedSignal.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/PrepDropTab.cpp b/storage/ndb/src/common/debugger/signaldata/PrepDropTab.cpp index 112b92f3fcc..bcb89a6511e 100644 --- a/storage/ndb/src/common/debugger/signaldata/PrepDropTab.cpp +++ b/storage/ndb/src/common/debugger/signaldata/PrepDropTab.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/PrepFailReqRef.cpp b/storage/ndb/src/common/debugger/signaldata/PrepFailReqRef.cpp index cea7c65485d..b693af31234 100644 --- a/storage/ndb/src/common/debugger/signaldata/PrepFailReqRef.cpp +++ b/storage/ndb/src/common/debugger/signaldata/PrepFailReqRef.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/ReadNodesConf.cpp b/storage/ndb/src/common/debugger/signaldata/ReadNodesConf.cpp index d8f8344ea95..5c1fdb4ffd3 100644 --- a/storage/ndb/src/common/debugger/signaldata/ReadNodesConf.cpp +++ b/storage/ndb/src/common/debugger/signaldata/ReadNodesConf.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/ScanFrag.cpp b/storage/ndb/src/common/debugger/signaldata/ScanFrag.cpp index de05426d40b..9bdfe1ad40a 100644 --- a/storage/ndb/src/common/debugger/signaldata/ScanFrag.cpp +++ b/storage/ndb/src/common/debugger/signaldata/ScanFrag.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/ScanTab.cpp b/storage/ndb/src/common/debugger/signaldata/ScanTab.cpp index 4f6b69ebfba..eec46313b2f 100644 --- a/storage/ndb/src/common/debugger/signaldata/ScanTab.cpp +++ b/storage/ndb/src/common/debugger/signaldata/ScanTab.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/SignalDataPrint.cpp b/storage/ndb/src/common/debugger/signaldata/SignalDataPrint.cpp index 00ccf2b9bab..e5804316bef 100644 --- a/storage/ndb/src/common/debugger/signaldata/SignalDataPrint.cpp +++ b/storage/ndb/src/common/debugger/signaldata/SignalDataPrint.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/SignalDroppedRep.cpp b/storage/ndb/src/common/debugger/signaldata/SignalDroppedRep.cpp index e812efc85a6..2f060f671f6 100644 --- a/storage/ndb/src/common/debugger/signaldata/SignalDroppedRep.cpp +++ b/storage/ndb/src/common/debugger/signaldata/SignalDroppedRep.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/SignalNames.cpp b/storage/ndb/src/common/debugger/signaldata/SignalNames.cpp index b4221cbec8e..bfa8f49f169 100644 --- a/storage/ndb/src/common/debugger/signaldata/SignalNames.cpp +++ b/storage/ndb/src/common/debugger/signaldata/SignalNames.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/StartRec.cpp b/storage/ndb/src/common/debugger/signaldata/StartRec.cpp index 69054528d95..dcbfa6ca084 100644 --- a/storage/ndb/src/common/debugger/signaldata/StartRec.cpp +++ b/storage/ndb/src/common/debugger/signaldata/StartRec.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/SumaImpl.cpp b/storage/ndb/src/common/debugger/signaldata/SumaImpl.cpp index 19a40589a96..6bd1b73cb14 100644 --- a/storage/ndb/src/common/debugger/signaldata/SumaImpl.cpp +++ b/storage/ndb/src/common/debugger/signaldata/SumaImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/SystemError.cpp b/storage/ndb/src/common/debugger/signaldata/SystemError.cpp index c1acde0b6ad..5cbde43e072 100644 --- a/storage/ndb/src/common/debugger/signaldata/SystemError.cpp +++ b/storage/ndb/src/common/debugger/signaldata/SystemError.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/TcIndx.cpp b/storage/ndb/src/common/debugger/signaldata/TcIndx.cpp index 8efbf106534..3fe205cdc03 100644 --- a/storage/ndb/src/common/debugger/signaldata/TcIndx.cpp +++ b/storage/ndb/src/common/debugger/signaldata/TcIndx.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/TcKeyConf.cpp b/storage/ndb/src/common/debugger/signaldata/TcKeyConf.cpp index 377863f9446..381528bf627 100644 --- a/storage/ndb/src/common/debugger/signaldata/TcKeyConf.cpp +++ b/storage/ndb/src/common/debugger/signaldata/TcKeyConf.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/TcKeyRef.cpp b/storage/ndb/src/common/debugger/signaldata/TcKeyRef.cpp index eb512de52e6..1e981fca561 100644 --- a/storage/ndb/src/common/debugger/signaldata/TcKeyRef.cpp +++ b/storage/ndb/src/common/debugger/signaldata/TcKeyRef.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/TcKeyReq.cpp b/storage/ndb/src/common/debugger/signaldata/TcKeyReq.cpp index 2b7a66abd6b..169812e59e9 100644 --- a/storage/ndb/src/common/debugger/signaldata/TcKeyReq.cpp +++ b/storage/ndb/src/common/debugger/signaldata/TcKeyReq.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/TcRollbackRep.cpp b/storage/ndb/src/common/debugger/signaldata/TcRollbackRep.cpp index 92191619982..f1c45d5faae 100644 --- a/storage/ndb/src/common/debugger/signaldata/TcRollbackRep.cpp +++ b/storage/ndb/src/common/debugger/signaldata/TcRollbackRep.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/TrigAttrInfo.cpp b/storage/ndb/src/common/debugger/signaldata/TrigAttrInfo.cpp index 14329c66c2a..47ecd21db4d 100644 --- a/storage/ndb/src/common/debugger/signaldata/TrigAttrInfo.cpp +++ b/storage/ndb/src/common/debugger/signaldata/TrigAttrInfo.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/TupCommit.cpp b/storage/ndb/src/common/debugger/signaldata/TupCommit.cpp index a796d87bd91..d3238c3c9a5 100644 --- a/storage/ndb/src/common/debugger/signaldata/TupCommit.cpp +++ b/storage/ndb/src/common/debugger/signaldata/TupCommit.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/TupKey.cpp b/storage/ndb/src/common/debugger/signaldata/TupKey.cpp index 03811bfd7c9..7055dff9fa1 100644 --- a/storage/ndb/src/common/debugger/signaldata/TupKey.cpp +++ b/storage/ndb/src/common/debugger/signaldata/TupKey.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/TuxMaint.cpp b/storage/ndb/src/common/debugger/signaldata/TuxMaint.cpp index f7a41a84992..141befa279a 100644 --- a/storage/ndb/src/common/debugger/signaldata/TuxMaint.cpp +++ b/storage/ndb/src/common/debugger/signaldata/TuxMaint.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/UtilDelete.cpp b/storage/ndb/src/common/debugger/signaldata/UtilDelete.cpp index 38f5b8a7c06..3d1ac8cb92e 100644 --- a/storage/ndb/src/common/debugger/signaldata/UtilDelete.cpp +++ b/storage/ndb/src/common/debugger/signaldata/UtilDelete.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/UtilExecute.cpp b/storage/ndb/src/common/debugger/signaldata/UtilExecute.cpp index a0cfcbdb356..8dfbd77396d 100644 --- a/storage/ndb/src/common/debugger/signaldata/UtilExecute.cpp +++ b/storage/ndb/src/common/debugger/signaldata/UtilExecute.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/UtilLock.cpp b/storage/ndb/src/common/debugger/signaldata/UtilLock.cpp index 3004f9d0975..094224de134 100644 --- a/storage/ndb/src/common/debugger/signaldata/UtilLock.cpp +++ b/storage/ndb/src/common/debugger/signaldata/UtilLock.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/UtilPrepare.cpp b/storage/ndb/src/common/debugger/signaldata/UtilPrepare.cpp index 36591d18a54..927b4089245 100644 --- a/storage/ndb/src/common/debugger/signaldata/UtilPrepare.cpp +++ b/storage/ndb/src/common/debugger/signaldata/UtilPrepare.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/UtilSequence.cpp b/storage/ndb/src/common/debugger/signaldata/UtilSequence.cpp index 164987a9720..0b7f81ed812 100644 --- a/storage/ndb/src/common/debugger/signaldata/UtilSequence.cpp +++ b/storage/ndb/src/common/debugger/signaldata/UtilSequence.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/debugger/signaldata/print.awk b/storage/ndb/src/common/debugger/signaldata/print.awk index 3c289e59f63..199cb16bd6e 100644 --- a/storage/ndb/src/common/debugger/signaldata/print.awk +++ b/storage/ndb/src/common/debugger/signaldata/print.awk @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/logger/ConsoleLogHandler.cpp b/storage/ndb/src/common/logger/ConsoleLogHandler.cpp index d0cafcb3590..eea8b2855d9 100644 --- a/storage/ndb/src/common/logger/ConsoleLogHandler.cpp +++ b/storage/ndb/src/common/logger/ConsoleLogHandler.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/logger/FileLogHandler.cpp b/storage/ndb/src/common/logger/FileLogHandler.cpp index a4f610777eb..a30a1a97b28 100644 --- a/storage/ndb/src/common/logger/FileLogHandler.cpp +++ b/storage/ndb/src/common/logger/FileLogHandler.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/logger/LogHandler.cpp b/storage/ndb/src/common/logger/LogHandler.cpp index b746bcc3cd7..b8eaeddac98 100644 --- a/storage/ndb/src/common/logger/LogHandler.cpp +++ b/storage/ndb/src/common/logger/LogHandler.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/logger/LogHandlerList.cpp b/storage/ndb/src/common/logger/LogHandlerList.cpp index 376e96c3c8c..f4e71ff4325 100644 --- a/storage/ndb/src/common/logger/LogHandlerList.cpp +++ b/storage/ndb/src/common/logger/LogHandlerList.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/logger/LogHandlerList.hpp b/storage/ndb/src/common/logger/LogHandlerList.hpp index ad87c0294cf..f6f372df4cc 100644 --- a/storage/ndb/src/common/logger/LogHandlerList.hpp +++ b/storage/ndb/src/common/logger/LogHandlerList.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/logger/Logger.cpp b/storage/ndb/src/common/logger/Logger.cpp index 3df3a778fc0..f35a1f6b087 100644 --- a/storage/ndb/src/common/logger/Logger.cpp +++ b/storage/ndb/src/common/logger/Logger.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/logger/Makefile.am b/storage/ndb/src/common/logger/Makefile.am index 77615212e0d..4ce8f21a95a 100644 --- a/storage/ndb/src/common/logger/Makefile.am +++ b/storage/ndb/src/common/logger/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/logger/SysLogHandler.cpp b/storage/ndb/src/common/logger/SysLogHandler.cpp index 3178ef6e1c7..f7265f9414b 100644 --- a/storage/ndb/src/common/logger/SysLogHandler.cpp +++ b/storage/ndb/src/common/logger/SysLogHandler.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp b/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp index e478573a094..b1f10db0338 100644 --- a/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp +++ b/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp b/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp index ae7846af19e..5aa36cefe16 100644 --- a/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp +++ b/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/logger/loggertest/LoggerUnitTest.cpp b/storage/ndb/src/common/logger/loggertest/LoggerUnitTest.cpp index adc3c219622..ef8be1e60b7 100644 --- a/storage/ndb/src/common/logger/loggertest/LoggerUnitTest.cpp +++ b/storage/ndb/src/common/logger/loggertest/LoggerUnitTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/logger/loggertest/LoggerUnitTest.hpp b/storage/ndb/src/common/logger/loggertest/LoggerUnitTest.hpp index e7d25292aab..0a25723d038 100644 --- a/storage/ndb/src/common/logger/loggertest/LoggerUnitTest.hpp +++ b/storage/ndb/src/common/logger/loggertest/LoggerUnitTest.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/mgmcommon/ConfigRetriever.cpp b/storage/ndb/src/common/mgmcommon/ConfigRetriever.cpp index 35b1a91e9da..6ce0e4de376 100644 --- a/storage/ndb/src/common/mgmcommon/ConfigRetriever.cpp +++ b/storage/ndb/src/common/mgmcommon/ConfigRetriever.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/mgmcommon/IPCConfig.cpp b/storage/ndb/src/common/mgmcommon/IPCConfig.cpp index 81d1d923ee9..8081ecf7ea4 100644 --- a/storage/ndb/src/common/mgmcommon/IPCConfig.cpp +++ b/storage/ndb/src/common/mgmcommon/IPCConfig.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/mgmcommon/Makefile.am b/storage/ndb/src/common/mgmcommon/Makefile.am index ad56e8c1459..8b83628fe64 100644 --- a/storage/ndb/src/common/mgmcommon/Makefile.am +++ b/storage/ndb/src/common/mgmcommon/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/mgmcommon/printConfig/printConfig.cpp b/storage/ndb/src/common/mgmcommon/printConfig/printConfig.cpp index 348075a6cd2..76bcc0fe64c 100644 --- a/storage/ndb/src/common/mgmcommon/printConfig/printConfig.cpp +++ b/storage/ndb/src/common/mgmcommon/printConfig/printConfig.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/NdbCondition.c b/storage/ndb/src/common/portlib/NdbCondition.c index da1d67e660e..29e8a471f18 100644 --- a/storage/ndb/src/common/portlib/NdbCondition.c +++ b/storage/ndb/src/common/portlib/NdbCondition.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/NdbConfig.c b/storage/ndb/src/common/portlib/NdbConfig.c index 193b3429a3d..7d7f24abf90 100644 --- a/storage/ndb/src/common/portlib/NdbConfig.c +++ b/storage/ndb/src/common/portlib/NdbConfig.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/NdbDaemon.c b/storage/ndb/src/common/portlib/NdbDaemon.c index d440b68290e..fc76222e2c7 100644 --- a/storage/ndb/src/common/portlib/NdbDaemon.c +++ b/storage/ndb/src/common/portlib/NdbDaemon.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/NdbEnv.c b/storage/ndb/src/common/portlib/NdbEnv.c index faa9a20a516..ed73986d23d 100644 --- a/storage/ndb/src/common/portlib/NdbEnv.c +++ b/storage/ndb/src/common/portlib/NdbEnv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/NdbHost.c b/storage/ndb/src/common/portlib/NdbHost.c index 26563a65d9c..b082fe4551f 100644 --- a/storage/ndb/src/common/portlib/NdbHost.c +++ b/storage/ndb/src/common/portlib/NdbHost.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/NdbMem.c b/storage/ndb/src/common/portlib/NdbMem.c index 7c95e02cd0c..80d847a9877 100644 --- a/storage/ndb/src/common/portlib/NdbMem.c +++ b/storage/ndb/src/common/portlib/NdbMem.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/NdbPortLibTest.cpp b/storage/ndb/src/common/portlib/NdbPortLibTest.cpp index 2cc19f70218..1658045d468 100644 --- a/storage/ndb/src/common/portlib/NdbPortLibTest.cpp +++ b/storage/ndb/src/common/portlib/NdbPortLibTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/NdbSleep.c b/storage/ndb/src/common/portlib/NdbSleep.c index b3251939938..f8dc7828c57 100644 --- a/storage/ndb/src/common/portlib/NdbSleep.c +++ b/storage/ndb/src/common/portlib/NdbSleep.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/NdbTCP.cpp b/storage/ndb/src/common/portlib/NdbTCP.cpp index 72892b93e62..18b0f37c12a 100644 --- a/storage/ndb/src/common/portlib/NdbTCP.cpp +++ b/storage/ndb/src/common/portlib/NdbTCP.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/NdbThread.c b/storage/ndb/src/common/portlib/NdbThread.c index d8c010b6a06..aa5790abaac 100644 --- a/storage/ndb/src/common/portlib/NdbThread.c +++ b/storage/ndb/src/common/portlib/NdbThread.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/NdbTick.c b/storage/ndb/src/common/portlib/NdbTick.c index 7e54984794f..34cc95a3f3c 100644 --- a/storage/ndb/src/common/portlib/NdbTick.c +++ b/storage/ndb/src/common/portlib/NdbTick.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/memtest.c b/storage/ndb/src/common/portlib/memtest.c index b9ad2cee315..2bcfa53d07d 100644 --- a/storage/ndb/src/common/portlib/memtest.c +++ b/storage/ndb/src/common/portlib/memtest.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/mmstest.cpp b/storage/ndb/src/common/portlib/mmstest.cpp index 3ffb2e1a5aa..cc61186a4ac 100644 --- a/storage/ndb/src/common/portlib/mmstest.cpp +++ b/storage/ndb/src/common/portlib/mmstest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/munmaptest.cpp b/storage/ndb/src/common/portlib/munmaptest.cpp index 57f1756f1ee..a4a48b280f6 100644 --- a/storage/ndb/src/common/portlib/munmaptest.cpp +++ b/storage/ndb/src/common/portlib/munmaptest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/win32/NdbCondition.c b/storage/ndb/src/common/portlib/win32/NdbCondition.c index 1a68572297c..f90c44ba23b 100644 --- a/storage/ndb/src/common/portlib/win32/NdbCondition.c +++ b/storage/ndb/src/common/portlib/win32/NdbCondition.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/win32/NdbDaemon.c b/storage/ndb/src/common/portlib/win32/NdbDaemon.c index 6cfffbd8600..f83775162e6 100644 --- a/storage/ndb/src/common/portlib/win32/NdbDaemon.c +++ b/storage/ndb/src/common/portlib/win32/NdbDaemon.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/win32/NdbEnv.c b/storage/ndb/src/common/portlib/win32/NdbEnv.c index dedd9c9c1fe..06898a5286e 100644 --- a/storage/ndb/src/common/portlib/win32/NdbEnv.c +++ b/storage/ndb/src/common/portlib/win32/NdbEnv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/win32/NdbHost.c b/storage/ndb/src/common/portlib/win32/NdbHost.c index 34977942eb6..b063b350af8 100644 --- a/storage/ndb/src/common/portlib/win32/NdbHost.c +++ b/storage/ndb/src/common/portlib/win32/NdbHost.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/win32/NdbMem.c b/storage/ndb/src/common/portlib/win32/NdbMem.c index 39c84f4717a..97bce82d4e1 100644 --- a/storage/ndb/src/common/portlib/win32/NdbMem.c +++ b/storage/ndb/src/common/portlib/win32/NdbMem.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/win32/NdbMutex.c b/storage/ndb/src/common/portlib/win32/NdbMutex.c index af04531543e..d88f69a2c58 100644 --- a/storage/ndb/src/common/portlib/win32/NdbMutex.c +++ b/storage/ndb/src/common/portlib/win32/NdbMutex.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/win32/NdbSleep.c b/storage/ndb/src/common/portlib/win32/NdbSleep.c index 9c3df0ec0ca..17aa44a4108 100644 --- a/storage/ndb/src/common/portlib/win32/NdbSleep.c +++ b/storage/ndb/src/common/portlib/win32/NdbSleep.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/win32/NdbTCP.c b/storage/ndb/src/common/portlib/win32/NdbTCP.c index e1d9bf91009..07aa2ba5ad6 100644 --- a/storage/ndb/src/common/portlib/win32/NdbTCP.c +++ b/storage/ndb/src/common/portlib/win32/NdbTCP.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/win32/NdbThread.c b/storage/ndb/src/common/portlib/win32/NdbThread.c index 3cd57b40422..f063555954c 100644 --- a/storage/ndb/src/common/portlib/win32/NdbThread.c +++ b/storage/ndb/src/common/portlib/win32/NdbThread.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/portlib/win32/NdbTick.c b/storage/ndb/src/common/portlib/win32/NdbTick.c index 3e9c6f47349..db6bef6e949 100644 --- a/storage/ndb/src/common/portlib/win32/NdbTick.c +++ b/storage/ndb/src/common/portlib/win32/NdbTick.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/Makefile.am b/storage/ndb/src/common/transporter/Makefile.am index 83ac3b6121d..e875d0ed29b 100644 --- a/storage/ndb/src/common/transporter/Makefile.am +++ b/storage/ndb/src/common/transporter/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2005 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/Packer.cpp b/storage/ndb/src/common/transporter/Packer.cpp index df7ff078e63..e917fa3e898 100644 --- a/storage/ndb/src/common/transporter/Packer.cpp +++ b/storage/ndb/src/common/transporter/Packer.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/Packer.hpp b/storage/ndb/src/common/transporter/Packer.hpp index 8a1feb87ed7..f06fb7dda62 100644 --- a/storage/ndb/src/common/transporter/Packer.hpp +++ b/storage/ndb/src/common/transporter/Packer.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/SCI_Transporter.cpp b/storage/ndb/src/common/transporter/SCI_Transporter.cpp index 0720fe84973..a9f3a4ea129 100644 --- a/storage/ndb/src/common/transporter/SCI_Transporter.cpp +++ b/storage/ndb/src/common/transporter/SCI_Transporter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/SCI_Transporter.hpp b/storage/ndb/src/common/transporter/SCI_Transporter.hpp index f774186f238..d8f4c85b7ed 100644 --- a/storage/ndb/src/common/transporter/SCI_Transporter.hpp +++ b/storage/ndb/src/common/transporter/SCI_Transporter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/SHM_Buffer.hpp b/storage/ndb/src/common/transporter/SHM_Buffer.hpp index aecadf23943..de6d522b856 100644 --- a/storage/ndb/src/common/transporter/SHM_Buffer.hpp +++ b/storage/ndb/src/common/transporter/SHM_Buffer.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/SHM_Transporter.cpp b/storage/ndb/src/common/transporter/SHM_Transporter.cpp index 3ce21940254..48127541af6 100644 --- a/storage/ndb/src/common/transporter/SHM_Transporter.cpp +++ b/storage/ndb/src/common/transporter/SHM_Transporter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/SHM_Transporter.hpp b/storage/ndb/src/common/transporter/SHM_Transporter.hpp index bdb31298b8b..430a4975fea 100644 --- a/storage/ndb/src/common/transporter/SHM_Transporter.hpp +++ b/storage/ndb/src/common/transporter/SHM_Transporter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/SHM_Transporter.unix.cpp b/storage/ndb/src/common/transporter/SHM_Transporter.unix.cpp index 5cab98aa075..2bb5c1d15ac 100644 --- a/storage/ndb/src/common/transporter/SHM_Transporter.unix.cpp +++ b/storage/ndb/src/common/transporter/SHM_Transporter.unix.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/SHM_Transporter.win32.cpp b/storage/ndb/src/common/transporter/SHM_Transporter.win32.cpp index 5a753179b59..2a26c32f558 100644 --- a/storage/ndb/src/common/transporter/SHM_Transporter.win32.cpp +++ b/storage/ndb/src/common/transporter/SHM_Transporter.win32.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/SendBuffer.cpp b/storage/ndb/src/common/transporter/SendBuffer.cpp index c0cf81ba823..36a08a0f151 100644 --- a/storage/ndb/src/common/transporter/SendBuffer.cpp +++ b/storage/ndb/src/common/transporter/SendBuffer.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/SendBuffer.hpp b/storage/ndb/src/common/transporter/SendBuffer.hpp index 73dda433493..328514fae8a 100644 --- a/storage/ndb/src/common/transporter/SendBuffer.hpp +++ b/storage/ndb/src/common/transporter/SendBuffer.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/TCP_Transporter.cpp b/storage/ndb/src/common/transporter/TCP_Transporter.cpp index 8b386483bff..68b2eb8d138 100644 --- a/storage/ndb/src/common/transporter/TCP_Transporter.cpp +++ b/storage/ndb/src/common/transporter/TCP_Transporter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/TCP_Transporter.hpp b/storage/ndb/src/common/transporter/TCP_Transporter.hpp index ed1a154c944..868e0d0df8a 100644 --- a/storage/ndb/src/common/transporter/TCP_Transporter.hpp +++ b/storage/ndb/src/common/transporter/TCP_Transporter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/Transporter.cpp b/storage/ndb/src/common/transporter/Transporter.cpp index 269a5fba4e9..9f616d8dea0 100644 --- a/storage/ndb/src/common/transporter/Transporter.cpp +++ b/storage/ndb/src/common/transporter/Transporter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/Transporter.hpp b/storage/ndb/src/common/transporter/Transporter.hpp index 1a979207b0c..6526bc8ad47 100644 --- a/storage/ndb/src/common/transporter/Transporter.hpp +++ b/storage/ndb/src/common/transporter/Transporter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/TransporterInternalDefinitions.hpp b/storage/ndb/src/common/transporter/TransporterInternalDefinitions.hpp index 0576b188227..b19c28250ec 100644 --- a/storage/ndb/src/common/transporter/TransporterInternalDefinitions.hpp +++ b/storage/ndb/src/common/transporter/TransporterInternalDefinitions.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/TransporterRegistry.cpp b/storage/ndb/src/common/transporter/TransporterRegistry.cpp index 848738b2983..6e525fcfb4f 100644 --- a/storage/ndb/src/common/transporter/TransporterRegistry.cpp +++ b/storage/ndb/src/common/transporter/TransporterRegistry.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/basictest/basicTransporterTest.cpp b/storage/ndb/src/common/transporter/basictest/basicTransporterTest.cpp index 58693de7f48..5c780a017b2 100644 --- a/storage/ndb/src/common/transporter/basictest/basicTransporterTest.cpp +++ b/storage/ndb/src/common/transporter/basictest/basicTransporterTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/buddy.cpp b/storage/ndb/src/common/transporter/buddy.cpp index 3c33f5c8f55..aaad982dcab 100644 --- a/storage/ndb/src/common/transporter/buddy.cpp +++ b/storage/ndb/src/common/transporter/buddy.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/buddy.hpp b/storage/ndb/src/common/transporter/buddy.hpp index 7bb7d626c6d..89093d7ec88 100644 --- a/storage/ndb/src/common/transporter/buddy.hpp +++ b/storage/ndb/src/common/transporter/buddy.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/failoverSCI/failoverSCI.cpp b/storage/ndb/src/common/transporter/failoverSCI/failoverSCI.cpp index b4eca4e6ddd..c5250c5e4e9 100644 --- a/storage/ndb/src/common/transporter/failoverSCI/failoverSCI.cpp +++ b/storage/ndb/src/common/transporter/failoverSCI/failoverSCI.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/perftest/perfTransporterTest.cpp b/storage/ndb/src/common/transporter/perftest/perfTransporterTest.cpp index bc4606e827c..15c4c7e3750 100644 --- a/storage/ndb/src/common/transporter/perftest/perfTransporterTest.cpp +++ b/storage/ndb/src/common/transporter/perftest/perfTransporterTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/priotest/prioSCI/prioSCI.cpp b/storage/ndb/src/common/transporter/priotest/prioSCI/prioSCI.cpp index ae0773eace4..0a314c8b2e4 100644 --- a/storage/ndb/src/common/transporter/priotest/prioSCI/prioSCI.cpp +++ b/storage/ndb/src/common/transporter/priotest/prioSCI/prioSCI.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/priotest/prioSHM/prioSHM.cpp b/storage/ndb/src/common/transporter/priotest/prioSHM/prioSHM.cpp index ecbd53067d3..38216ab2827 100644 --- a/storage/ndb/src/common/transporter/priotest/prioSHM/prioSHM.cpp +++ b/storage/ndb/src/common/transporter/priotest/prioSHM/prioSHM.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/priotest/prioTCP/prioTCP.cpp b/storage/ndb/src/common/transporter/priotest/prioTCP/prioTCP.cpp index ffbad231474..d6a34a6a9c7 100644 --- a/storage/ndb/src/common/transporter/priotest/prioTCP/prioTCP.cpp +++ b/storage/ndb/src/common/transporter/priotest/prioTCP/prioTCP.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/priotest/prioTransporterTest.cpp b/storage/ndb/src/common/transporter/priotest/prioTransporterTest.cpp index c9d149187a1..0c93543aa3c 100644 --- a/storage/ndb/src/common/transporter/priotest/prioTransporterTest.cpp +++ b/storage/ndb/src/common/transporter/priotest/prioTransporterTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/transporter/priotest/prioTransporterTest.hpp b/storage/ndb/src/common/transporter/priotest/prioTransporterTest.hpp index 8e1f04f4301..cbe0919a1d8 100644 --- a/storage/ndb/src/common/transporter/priotest/prioTransporterTest.hpp +++ b/storage/ndb/src/common/transporter/priotest/prioTransporterTest.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/BaseString.cpp b/storage/ndb/src/common/util/BaseString.cpp index 7e5adf0e9ef..a805ef280c3 100644 --- a/storage/ndb/src/common/util/BaseString.cpp +++ b/storage/ndb/src/common/util/BaseString.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/Bitmask.cpp b/storage/ndb/src/common/util/Bitmask.cpp index 22919fe585a..93902a6a16b 100644 --- a/storage/ndb/src/common/util/Bitmask.cpp +++ b/storage/ndb/src/common/util/Bitmask.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2005 MySQL AB +/* Copyright (c) 2004-2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/ConfigValues.cpp b/storage/ndb/src/common/util/ConfigValues.cpp index 9309fe3fbd6..3ed8acfa561 100644 --- a/storage/ndb/src/common/util/ConfigValues.cpp +++ b/storage/ndb/src/common/util/ConfigValues.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2004, 2006 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/File.cpp b/storage/ndb/src/common/util/File.cpp index 53e129e56a6..057aac02166 100644 --- a/storage/ndb/src/common/util/File.cpp +++ b/storage/ndb/src/common/util/File.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/InputStream.cpp b/storage/ndb/src/common/util/InputStream.cpp index 2337344d91a..3c4de7696d5 100644 --- a/storage/ndb/src/common/util/InputStream.cpp +++ b/storage/ndb/src/common/util/InputStream.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/NdbOut.cpp b/storage/ndb/src/common/util/NdbOut.cpp index 61de2be7572..27bd90a466d 100644 --- a/storage/ndb/src/common/util/NdbOut.cpp +++ b/storage/ndb/src/common/util/NdbOut.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/NdbSqlUtil.cpp b/storage/ndb/src/common/util/NdbSqlUtil.cpp index 0f62d66c149..c89c06063a6 100644 --- a/storage/ndb/src/common/util/NdbSqlUtil.cpp +++ b/storage/ndb/src/common/util/NdbSqlUtil.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/OutputStream.cpp b/storage/ndb/src/common/util/OutputStream.cpp index cd619380e5a..eb3a495c2ed 100644 --- a/storage/ndb/src/common/util/OutputStream.cpp +++ b/storage/ndb/src/common/util/OutputStream.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/Parser.cpp b/storage/ndb/src/common/util/Parser.cpp index 2c61a07ad52..962532bf4cd 100644 --- a/storage/ndb/src/common/util/Parser.cpp +++ b/storage/ndb/src/common/util/Parser.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/Properties.cpp b/storage/ndb/src/common/util/Properties.cpp index 11a1d8690ae..d48f993c413 100644 --- a/storage/ndb/src/common/util/Properties.cpp +++ b/storage/ndb/src/common/util/Properties.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/SimpleProperties.cpp b/storage/ndb/src/common/util/SimpleProperties.cpp index 813b38dffd7..aad829e73da 100644 --- a/storage/ndb/src/common/util/SimpleProperties.cpp +++ b/storage/ndb/src/common/util/SimpleProperties.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/SocketAuthenticator.cpp b/storage/ndb/src/common/util/SocketAuthenticator.cpp index 2f939da6387..4cef9028053 100644 --- a/storage/ndb/src/common/util/SocketAuthenticator.cpp +++ b/storage/ndb/src/common/util/SocketAuthenticator.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/SocketClient.cpp b/storage/ndb/src/common/util/SocketClient.cpp index 3d1fd07d581..52f3963f448 100644 --- a/storage/ndb/src/common/util/SocketClient.cpp +++ b/storage/ndb/src/common/util/SocketClient.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/SocketServer.cpp b/storage/ndb/src/common/util/SocketServer.cpp index 47bf562f7d1..c9870cc87d9 100644 --- a/storage/ndb/src/common/util/SocketServer.cpp +++ b/storage/ndb/src/common/util/SocketServer.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/basestring_vsnprintf.c b/storage/ndb/src/common/util/basestring_vsnprintf.c index 07762a4e503..48a63896fe7 100644 --- a/storage/ndb/src/common/util/basestring_vsnprintf.c +++ b/storage/ndb/src/common/util/basestring_vsnprintf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/filetest/FileUnitTest.cpp b/storage/ndb/src/common/util/filetest/FileUnitTest.cpp index 35b86623351..55fc8304f0a 100644 --- a/storage/ndb/src/common/util/filetest/FileUnitTest.cpp +++ b/storage/ndb/src/common/util/filetest/FileUnitTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/filetest/FileUnitTest.hpp b/storage/ndb/src/common/util/filetest/FileUnitTest.hpp index 231c5919244..c9d10ec9820 100644 --- a/storage/ndb/src/common/util/filetest/FileUnitTest.hpp +++ b/storage/ndb/src/common/util/filetest/FileUnitTest.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/md5_hash.cpp b/storage/ndb/src/common/util/md5_hash.cpp index 4b5c5623886..353f5d0e139 100644 --- a/storage/ndb/src/common/util/md5_hash.cpp +++ b/storage/ndb/src/common/util/md5_hash.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/ndb_init.c b/storage/ndb/src/common/util/ndb_init.c index 6c69dfbf8b6..06fcf6209f8 100644 --- a/storage/ndb/src/common/util/ndb_init.c +++ b/storage/ndb/src/common/util/ndb_init.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/ndb_rand.c b/storage/ndb/src/common/util/ndb_rand.c index 4fcc483cd49..f7574ed4de8 100644 --- a/storage/ndb/src/common/util/ndb_rand.c +++ b/storage/ndb/src/common/util/ndb_rand.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/new.cpp b/storage/ndb/src/common/util/new.cpp index bc9db0d749f..3aaca0b7af3 100644 --- a/storage/ndb/src/common/util/new.cpp +++ b/storage/ndb/src/common/util/new.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2005 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/random.c b/storage/ndb/src/common/util/random.c index 20ef537d89a..4480e20fa93 100644 --- a/storage/ndb/src/common/util/random.c +++ b/storage/ndb/src/common/util/random.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/socket_io.cpp b/storage/ndb/src/common/util/socket_io.cpp index dfdcd19412f..ab0c8bde836 100644 --- a/storage/ndb/src/common/util/socket_io.cpp +++ b/storage/ndb/src/common/util/socket_io.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/strdup.c b/storage/ndb/src/common/util/strdup.c index d26b94fdb25..206a3a7866c 100644 --- a/storage/ndb/src/common/util/strdup.c +++ b/storage/ndb/src/common/util/strdup.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/testConfigValues/testConfigValues.cpp b/storage/ndb/src/common/util/testConfigValues/testConfigValues.cpp index b887808c62e..3777bd1d27f 100644 --- a/storage/ndb/src/common/util/testConfigValues/testConfigValues.cpp +++ b/storage/ndb/src/common/util/testConfigValues/testConfigValues.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/testProperties/testProperties.cpp b/storage/ndb/src/common/util/testProperties/testProperties.cpp index c4120e92400..ae3022ce7fe 100644 --- a/storage/ndb/src/common/util/testProperties/testProperties.cpp +++ b/storage/ndb/src/common/util/testProperties/testProperties.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/testSimpleProperties/sp_test.cpp b/storage/ndb/src/common/util/testSimpleProperties/sp_test.cpp index ebc445a77ad..93e4472c41b 100644 --- a/storage/ndb/src/common/util/testSimpleProperties/sp_test.cpp +++ b/storage/ndb/src/common/util/testSimpleProperties/sp_test.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/uucode.c b/storage/ndb/src/common/util/uucode.c index ad2db2fcbbe..d0d22893544 100644 --- a/storage/ndb/src/common/util/uucode.c +++ b/storage/ndb/src/common/util/uucode.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/common/util/version.c b/storage/ndb/src/common/util/version.c index 56a92489131..ade680d7bec 100644 --- a/storage/ndb/src/common/util/version.c +++ b/storage/ndb/src/common/util/version.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/Makefile.am b/storage/ndb/src/cw/Makefile.am index d9a40002062..8debc54b778 100644 --- a/storage/ndb/src/cw/Makefile.am +++ b/storage/ndb/src/cw/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp index b1d599dda63..0ea940e7ffe 100644 --- a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp +++ b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.h b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.h index 692248cf9ea..37eacbdd99e 100644 --- a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.h +++ b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.rc b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.rc index 41d75b2b282..9b5b6729fae 100644 --- a/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.rc +++ b/storage/ndb/src/cw/cpcc-win32/C++/CPC_GUI.rc @@ -89,7 +89,7 @@ FONT 8, "MS Sans Serif" BEGIN LTEXT "NDB Cluster Process Control Applet v1.0",IDC_STATIC,7,8, 213,8,SS_NOPREFIX - LTEXT "Copyright (C) 2003 MySQL AB", + LTEXT "Copyright (c) 2003, 2005 MySQL AB IDC_STATIC,7,20,213,20 DEFPUSHBUTTON "OK",IDOK,185,55,41,16,WS_GROUP END diff --git a/storage/ndb/src/cw/cpcc-win32/C++/NdbControls.cpp b/storage/ndb/src/cw/cpcc-win32/C++/NdbControls.cpp index 8feadf9462c..519fb5e23e5 100644 --- a/storage/ndb/src/cw/cpcc-win32/C++/NdbControls.cpp +++ b/storage/ndb/src/cw/cpcc-win32/C++/NdbControls.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.cpp b/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.cpp index 2515c6f1b54..479323cefd3 100644 --- a/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.cpp +++ b/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.h b/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.h index 830735d4c09..ec311265c66 100644 --- a/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.h +++ b/storage/ndb/src/cw/cpcc-win32/C++/StdAfx.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/C++/TreeView.cpp b/storage/ndb/src/cw/cpcc-win32/C++/TreeView.cpp index 28cd75550c8..48a3e475c1a 100644 --- a/storage/ndb/src/cw/cpcc-win32/C++/TreeView.cpp +++ b/storage/ndb/src/cw/cpcc-win32/C++/TreeView.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/C++/TreeView.h b/storage/ndb/src/cw/cpcc-win32/C++/TreeView.h index 6e87f3819de..c231f126a54 100644 --- a/storage/ndb/src/cw/cpcc-win32/C++/TreeView.h +++ b/storage/ndb/src/cw/cpcc-win32/C++/TreeView.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/C++/resource.h b/storage/ndb/src/cw/cpcc-win32/C++/resource.h index 9bcd7d53b6f..c2dfcf4fb67 100644 --- a/storage/ndb/src/cw/cpcc-win32/C++/resource.h +++ b/storage/ndb/src/cw/cpcc-win32/C++/resource.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/CPC_Form.cs b/storage/ndb/src/cw/cpcc-win32/csharp/CPC_Form.cs index b19875b97ef..9bc1a010e8d 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/CPC_Form.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/CPC_Form.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/Computer.cs b/storage/ndb/src/cw/cpcc-win32/csharp/Computer.cs index 5ee35e5e90e..7c6ef4a717d 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/Computer.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/Computer.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/ComputerAddDialog.cs b/storage/ndb/src/cw/cpcc-win32/csharp/ComputerAddDialog.cs index 506cb6777f0..7e5aa124f58 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/ComputerAddDialog.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/ComputerAddDialog.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/ComputerRemoveDialog.cs b/storage/ndb/src/cw/cpcc-win32/csharp/ComputerRemoveDialog.cs index a126c632ffd..664206599b2 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/ComputerRemoveDialog.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/ComputerRemoveDialog.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/Database.cs b/storage/ndb/src/cw/cpcc-win32/csharp/Database.cs index 80a8daee2d0..217c2e9d2aa 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/Database.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/Database.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/PanelWizard.cs b/storage/ndb/src/cw/cpcc-win32/csharp/PanelWizard.cs index a780190f86c..57090f8c161 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/PanelWizard.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/PanelWizard.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/Process.cs b/storage/ndb/src/cw/cpcc-win32/csharp/Process.cs index eac12d4868e..6feee5c5b41 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/Process.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/Process.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/ProcessDefineDialog.cs b/storage/ndb/src/cw/cpcc-win32/csharp/ProcessDefineDialog.cs index ab8d58ed11f..99b4e0fa177 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/ProcessDefineDialog.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/ProcessDefineDialog.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/fileaccess/FileMgmt.cs b/storage/ndb/src/cw/cpcc-win32/csharp/fileaccess/FileMgmt.cs index 41929c104d0..386395af495 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/fileaccess/FileMgmt.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/fileaccess/FileMgmt.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/simpleparser/SimpleCPCParser.cs b/storage/ndb/src/cw/cpcc-win32/csharp/simpleparser/SimpleCPCParser.cs index 6e070875b25..03a41d87b41 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/simpleparser/SimpleCPCParser.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/simpleparser/SimpleCPCParser.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/SocketComm.cs b/storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/SocketComm.cs index 9025f122994..baff6712a1f 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/SocketComm.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/SocketComm.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/myTcpClient.cs b/storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/myTcpClient.cs index 25d0d9947d6..a6ff62d6dac 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/myTcpClient.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/socketcomm/myTcpClient.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/startDatabaseDlg.cs b/storage/ndb/src/cw/cpcc-win32/csharp/startDatabaseDlg.cs index 4261efc8a29..aba1ed6bf1a 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/startDatabaseDlg.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/startDatabaseDlg.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcc-win32/csharp/telnetclient/telnetClient.cs b/storage/ndb/src/cw/cpcc-win32/csharp/telnetclient/telnetClient.cs index 5258ad290fc..2423e481927 100644 --- a/storage/ndb/src/cw/cpcc-win32/csharp/telnetclient/telnetClient.cs +++ b/storage/ndb/src/cw/cpcc-win32/csharp/telnetclient/telnetClient.cs @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcd/APIService.cpp b/storage/ndb/src/cw/cpcd/APIService.cpp index f60abc08817..e38099931b4 100644 --- a/storage/ndb/src/cw/cpcd/APIService.cpp +++ b/storage/ndb/src/cw/cpcd/APIService.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcd/APIService.hpp b/storage/ndb/src/cw/cpcd/APIService.hpp index c13d0d886b4..238280d3147 100644 --- a/storage/ndb/src/cw/cpcd/APIService.hpp +++ b/storage/ndb/src/cw/cpcd/APIService.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcd/CPCD.cpp b/storage/ndb/src/cw/cpcd/CPCD.cpp index 24afb0ea0b5..abad3c7a8b6 100644 --- a/storage/ndb/src/cw/cpcd/CPCD.cpp +++ b/storage/ndb/src/cw/cpcd/CPCD.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcd/CPCD.hpp b/storage/ndb/src/cw/cpcd/CPCD.hpp index 4d48bba096f..f3168a5e365 100644 --- a/storage/ndb/src/cw/cpcd/CPCD.hpp +++ b/storage/ndb/src/cw/cpcd/CPCD.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcd/Makefile.am b/storage/ndb/src/cw/cpcd/Makefile.am index efc828e21a9..45c9f8f762d 100644 --- a/storage/ndb/src/cw/cpcd/Makefile.am +++ b/storage/ndb/src/cw/cpcd/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcd/Monitor.cpp b/storage/ndb/src/cw/cpcd/Monitor.cpp index 7afbb8d7959..c82902b69de 100644 --- a/storage/ndb/src/cw/cpcd/Monitor.cpp +++ b/storage/ndb/src/cw/cpcd/Monitor.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcd/Process.cpp b/storage/ndb/src/cw/cpcd/Process.cpp index de61e54888d..40b27612f82 100644 --- a/storage/ndb/src/cw/cpcd/Process.cpp +++ b/storage/ndb/src/cw/cpcd/Process.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcd/common.cpp b/storage/ndb/src/cw/cpcd/common.cpp index aaadaeed2e3..224b44b5aff 100644 --- a/storage/ndb/src/cw/cpcd/common.cpp +++ b/storage/ndb/src/cw/cpcd/common.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcd/common.hpp b/storage/ndb/src/cw/cpcd/common.hpp index 044a7eb67c3..8da2425a7e0 100644 --- a/storage/ndb/src/cw/cpcd/common.hpp +++ b/storage/ndb/src/cw/cpcd/common.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/cpcd/main.cpp b/storage/ndb/src/cw/cpcd/main.cpp index d5c31d610cb..24c188b6914 100644 --- a/storage/ndb/src/cw/cpcd/main.cpp +++ b/storage/ndb/src/cw/cpcd/main.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/test/socketclient/socketClientTest.cpp b/storage/ndb/src/cw/test/socketclient/socketClientTest.cpp index a3da256a7ad..5fc9669536e 100644 --- a/storage/ndb/src/cw/test/socketclient/socketClientTest.cpp +++ b/storage/ndb/src/cw/test/socketclient/socketClientTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/util/ClientInterface.cpp b/storage/ndb/src/cw/util/ClientInterface.cpp index bc74698de76..ea06b25423f 100644 --- a/storage/ndb/src/cw/util/ClientInterface.cpp +++ b/storage/ndb/src/cw/util/ClientInterface.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/util/ClientInterface.hpp b/storage/ndb/src/cw/util/ClientInterface.hpp index 3496595145e..26b0d447929 100644 --- a/storage/ndb/src/cw/util/ClientInterface.hpp +++ b/storage/ndb/src/cw/util/ClientInterface.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/util/SocketRegistry.cpp b/storage/ndb/src/cw/util/SocketRegistry.cpp index ab94f772501..46f34c8d3d9 100644 --- a/storage/ndb/src/cw/util/SocketRegistry.cpp +++ b/storage/ndb/src/cw/util/SocketRegistry.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/util/SocketRegistry.hpp b/storage/ndb/src/cw/util/SocketRegistry.hpp index 0166232d4c8..ad590b528eb 100644 --- a/storage/ndb/src/cw/util/SocketRegistry.hpp +++ b/storage/ndb/src/cw/util/SocketRegistry.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/util/SocketService.cpp b/storage/ndb/src/cw/util/SocketService.cpp index 7b423e5546e..5dead5d4035 100644 --- a/storage/ndb/src/cw/util/SocketService.cpp +++ b/storage/ndb/src/cw/util/SocketService.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/cw/util/SocketService.hpp b/storage/ndb/src/cw/util/SocketService.hpp index 770d5d8ec96..8e7f6efec84 100644 --- a/storage/ndb/src/cw/util/SocketService.hpp +++ b/storage/ndb/src/cw/util/SocketService.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/SimBlockList.cpp b/storage/ndb/src/kernel/SimBlockList.cpp index e5dd02250b9..63dbf9d9c35 100644 --- a/storage/ndb/src/kernel/SimBlockList.cpp +++ b/storage/ndb/src/kernel/SimBlockList.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/backup/Backup.cpp b/storage/ndb/src/kernel/blocks/backup/Backup.cpp index 5cc486ff83b..07ae36a257c 100644 --- a/storage/ndb/src/kernel/blocks/backup/Backup.cpp +++ b/storage/ndb/src/kernel/blocks/backup/Backup.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/backup/Backup.hpp b/storage/ndb/src/kernel/blocks/backup/Backup.hpp index e28b322adb3..4b66d804148 100644 --- a/storage/ndb/src/kernel/blocks/backup/Backup.hpp +++ b/storage/ndb/src/kernel/blocks/backup/Backup.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/backup/BackupFormat.hpp b/storage/ndb/src/kernel/blocks/backup/BackupFormat.hpp index 20f8f6650be..ccc779c91f2 100644 --- a/storage/ndb/src/kernel/blocks/backup/BackupFormat.hpp +++ b/storage/ndb/src/kernel/blocks/backup/BackupFormat.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp b/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp index 2cd2a8a2bee..92e7185f144 100644 --- a/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp +++ b/storage/ndb/src/kernel/blocks/backup/BackupInit.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/backup/FsBuffer.hpp b/storage/ndb/src/kernel/blocks/backup/FsBuffer.hpp index bb0bbd6d770..ed5ee201f3e 100644 --- a/storage/ndb/src/kernel/blocks/backup/FsBuffer.hpp +++ b/storage/ndb/src/kernel/blocks/backup/FsBuffer.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/backup/Makefile.am b/storage/ndb/src/kernel/blocks/backup/Makefile.am index 4594e0fe717..92a1694f9e8 100644 --- a/storage/ndb/src/kernel/blocks/backup/Makefile.am +++ b/storage/ndb/src/kernel/blocks/backup/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/backup/read.cpp b/storage/ndb/src/kernel/blocks/backup/read.cpp index ebe769ede24..db32c821924 100644 --- a/storage/ndb/src/kernel/blocks/backup/read.cpp +++ b/storage/ndb/src/kernel/blocks/backup/read.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2003-2006 MySQL AB, 2009 Sun Microsystems, Inc. +/* Copyright (c) 2003-2005 MySQL AB, 2009 Sun Microsystems, Inc. Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp b/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp index 6c869435bfa..d8af1676c2f 100644 --- a/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp +++ b/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp b/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp index bc88f1a0c63..f162045fdb1 100644 --- a/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp +++ b/storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp b/storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp index 21114c6a155..4771f0ecdfe 100644 --- a/storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp +++ b/storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp b/storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp index 9ba164d264c..a4c5f55c150 100644 --- a/storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp +++ b/storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp b/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp index 1805d6ef4f8..6ace73f2b4d 100644 --- a/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp +++ b/storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp index 1189b23c14d..9d86bd61f8a 100644 --- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp +++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbdict/Makefile.am b/storage/ndb/src/kernel/blocks/dbdict/Makefile.am index 0ee3df7036d..ff94acf3a4e 100644 --- a/storage/ndb/src/kernel/blocks/dbdict/Makefile.am +++ b/storage/ndb/src/kernel/blocks/dbdict/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2005 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbdict/Master_AddTable.sfl b/storage/ndb/src/kernel/blocks/dbdict/Master_AddTable.sfl index 89dfd56fd40..7f2cb6087a4 100644 --- a/storage/ndb/src/kernel/blocks/dbdict/Master_AddTable.sfl +++ b/storage/ndb/src/kernel/blocks/dbdict/Master_AddTable.sfl @@ -1,4 +1,4 @@ -// Copyright (C) 2004 MySQL AB +// Copyright (c) 2004-2006 MySQL AB // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbdict/SchemaFile.hpp b/storage/ndb/src/kernel/blocks/dbdict/SchemaFile.hpp index b66e15b3ff1..1fe416f536d 100644 --- a/storage/ndb/src/kernel/blocks/dbdict/SchemaFile.hpp +++ b/storage/ndb/src/kernel/blocks/dbdict/SchemaFile.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbdict/Slave_AddTable.sfl b/storage/ndb/src/kernel/blocks/dbdict/Slave_AddTable.sfl index 4c018ea5460..82b7a90539b 100644 --- a/storage/ndb/src/kernel/blocks/dbdict/Slave_AddTable.sfl +++ b/storage/ndb/src/kernel/blocks/dbdict/Slave_AddTable.sfl @@ -1,4 +1,4 @@ -// Copyright (C) 2004 MySQL AB +// Copyright (c) 2004-2006 MySQL AB // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp b/storage/ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp index 44326e213d0..a616326bb2d 100644 --- a/storage/ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp +++ b/storage/ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp b/storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp index b0bbdefff55..bdf1d9cd8e2 100644 --- a/storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp +++ b/storage/ndb/src/kernel/blocks/dbdih/Dbdih.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp b/storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp index 6ce281434c2..b67bcdafa14 100644 --- a/storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp +++ b/storage/ndb/src/kernel/blocks/dbdih/DbdihInit.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp b/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp index e2b1058242d..c0d3703ca20 100644 --- a/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp +++ b/storage/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbdih/Makefile.am b/storage/ndb/src/kernel/blocks/dbdih/Makefile.am index 1c84714289d..f53cb83370b 100644 --- a/storage/ndb/src/kernel/blocks/dbdih/Makefile.am +++ b/storage/ndb/src/kernel/blocks/dbdih/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2005 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbdih/Sysfile.hpp b/storage/ndb/src/kernel/blocks/dbdih/Sysfile.hpp index 48daf42675a..54170853137 100644 --- a/storage/ndb/src/kernel/blocks/dbdih/Sysfile.hpp +++ b/storage/ndb/src/kernel/blocks/dbdih/Sysfile.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbdih/printSysfile.cpp b/storage/ndb/src/kernel/blocks/dbdih/printSysfile.cpp index ea4c5c61bb4..a50dfe0e384 100644 --- a/storage/ndb/src/kernel/blocks/dbdih/printSysfile.cpp +++ b/storage/ndb/src/kernel/blocks/dbdih/printSysfile.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbdih/printSysfile/printSysfile.cpp b/storage/ndb/src/kernel/blocks/dbdih/printSysfile/printSysfile.cpp index 8ef69cff388..31ba4f6b574 100644 --- a/storage/ndb/src/kernel/blocks/dbdih/printSysfile/printSysfile.cpp +++ b/storage/ndb/src/kernel/blocks/dbdih/printSysfile/printSysfile.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp b/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp index 62add0cf503..f39e593fad2 100644 --- a/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp +++ b/storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp b/storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp index b3a3d512da7..cf4beaa7b63 100644 --- a/storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp +++ b/storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dblqh/Makefile.am b/storage/ndb/src/kernel/blocks/dblqh/Makefile.am index b545096dc83..029a190e5a8 100644 --- a/storage/ndb/src/kernel/blocks/dblqh/Makefile.am +++ b/storage/ndb/src/kernel/blocks/dblqh/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2005 MySQL AB +# Copyright (c) 2004-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/reader.cpp b/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/reader.cpp index e5df14aea9a..7fbb34ba797 100644 --- a/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/reader.cpp +++ b/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/reader.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp b/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp index 6c4b26ecf17..bf2a736967f 100644 --- a/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp +++ b/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp b/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp index 49d69354b2a..fde901241ad 100644 --- a/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp +++ b/storage/ndb/src/kernel/blocks/dblqh/redoLogReader/records.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp b/storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp index db9f1454548..74d9cefcecf 100644 --- a/storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp +++ b/storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp b/storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp index 3bba771f3f0..5a5bc657291 100644 --- a/storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp +++ b/storage/ndb/src/kernel/blocks/dbtc/DbtcInit.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp b/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp index 7bd61dfe8b3..b88717bf1fa 100644 --- a/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp +++ b/storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/AttributeOffset.hpp b/storage/ndb/src/kernel/blocks/dbtup/AttributeOffset.hpp index df4897ac718..e13670a7bc2 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/AttributeOffset.hpp +++ b/storage/ndb/src/kernel/blocks/dbtup/AttributeOffset.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp b/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp index decb47e9758..b5f03d9e472 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp +++ b/storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp index 93a160a4df3..f45e72fa1d6 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp index adac4d3d460..e037b1daae2 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupBuffer.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp index f56e772c8b9..49c6e8592e6 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupCommit.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp index 8e532ae97b5..f5432c446af 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupDebug.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp index 3a3c1155657..fff8c08f4f4 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp index 8c096681b58..5a95a55eea2 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp index 900a02cfd72..d547c94c723 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupFixAlloc.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp index 74c7d38bd64..c83e3014b1d 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp index 0a4477db0d0..4e8fd314df1 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupIndex.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp index 176efac8058..70c3e05002c 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupPagMan.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupPagMan.cpp index 24806062fcf..2d31896e3d7 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupPagMan.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupPagMan.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp index cde63091cfb..93111bef70b 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupPageMap.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp index 64f81dc11ab..511d6fa9423 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupRoutines.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp index 4c5fb7b645f..188c63dfb0a 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupScan.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp index a1e350853ce..fc2f7e9e3c2 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2007, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupTabDesMan.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupTabDesMan.cpp index 6406bdefe1e..ef78bab6252 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupTabDesMan.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupTabDesMan.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp index 0ae6d0f4ac6..9b202d4efc5 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/DbtupVarAlloc.cpp b/storage/ndb/src/kernel/blocks/dbtup/DbtupVarAlloc.cpp index 1929901f86e..a316ba040cc 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/DbtupVarAlloc.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/DbtupVarAlloc.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2004 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/Makefile.am b/storage/ndb/src/kernel/blocks/dbtup/Makefile.am index 7feda3d8ac5..4436cee959b 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/Makefile.am +++ b/storage/ndb/src/kernel/blocks/dbtup/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2005 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp b/storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp index 972c912c8fa..975f0ebcf76 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.hpp b/storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.hpp index 8f9af424f24..b5f17398813 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.hpp +++ b/storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/test_varpage.cpp b/storage/ndb/src/kernel/blocks/dbtup/test_varpage.cpp index 9d64910381a..63b1c497958 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/test_varpage.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/test_varpage.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2006 MySQL AB +/* Copyright (c) 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/tuppage.cpp b/storage/ndb/src/kernel/blocks/dbtup/tuppage.cpp index 7ebbde93ac7..e3951eb607a 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/tuppage.cpp +++ b/storage/ndb/src/kernel/blocks/dbtup/tuppage.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtup/tuppage.hpp b/storage/ndb/src/kernel/blocks/dbtup/tuppage.hpp index 44aa6182b54..e7587d74a80 100644 --- a/storage/ndb/src/kernel/blocks/dbtup/tuppage.hpp +++ b/storage/ndb/src/kernel/blocks/dbtup/tuppage.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp b/storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp index 67ce7a1760a..651303b7b5f 100644 --- a/storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp +++ b/storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp b/storage/ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp index 95c7b417da9..9caf3c34b16 100644 --- a/storage/ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp +++ b/storage/ndb/src/kernel/blocks/dbtux/DbtuxCmp.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp b/storage/ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp index f5e0615697b..21a1d60d6d2 100644 --- a/storage/ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp +++ b/storage/ndb/src/kernel/blocks/dbtux/DbtuxDebug.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp b/storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp index f1654aaaeef..f628b4647b6 100644 --- a/storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp +++ b/storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp b/storage/ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp index 391adb1e930..849992d79b5 100644 --- a/storage/ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp +++ b/storage/ndb/src/kernel/blocks/dbtux/DbtuxMaint.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp b/storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp index 0c68008edd6..8eb7dfabe55 100644 --- a/storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp +++ b/storage/ndb/src/kernel/blocks/dbtux/DbtuxMeta.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp b/storage/ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp index 13485a31414..73027c5a828 100644 --- a/storage/ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp +++ b/storage/ndb/src/kernel/blocks/dbtux/DbtuxNode.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp b/storage/ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp index 8cef61038a6..a505eb39fbf 100644 --- a/storage/ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp +++ b/storage/ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtux/DbtuxSearch.cpp b/storage/ndb/src/kernel/blocks/dbtux/DbtuxSearch.cpp index f7b93401252..80eec415ea9 100644 --- a/storage/ndb/src/kernel/blocks/dbtux/DbtuxSearch.cpp +++ b/storage/ndb/src/kernel/blocks/dbtux/DbtuxSearch.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtux/DbtuxStat.cpp b/storage/ndb/src/kernel/blocks/dbtux/DbtuxStat.cpp index fe59b8bba2c..82b95bac062 100644 --- a/storage/ndb/src/kernel/blocks/dbtux/DbtuxStat.cpp +++ b/storage/ndb/src/kernel/blocks/dbtux/DbtuxStat.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp b/storage/ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp index 970ee794281..4055378811d 100644 --- a/storage/ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp +++ b/storage/ndb/src/kernel/blocks/dbtux/DbtuxTree.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp b/storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp index f34bc41af06..78e006a0d9a 100644 --- a/storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp +++ b/storage/ndb/src/kernel/blocks/dbutil/DbUtil.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp b/storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp index fceb8232a28..1a54f9823a1 100644 --- a/storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp +++ b/storage/ndb/src/kernel/blocks/dbutil/DbUtil.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/diskpage.cpp b/storage/ndb/src/kernel/blocks/diskpage.cpp index 50e9b6e53cb..d68db267c23 100644 --- a/storage/ndb/src/kernel/blocks/diskpage.cpp +++ b/storage/ndb/src/kernel/blocks/diskpage.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2006 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/diskpage.hpp b/storage/ndb/src/kernel/blocks/diskpage.hpp index 4119c328e35..b2665d83e95 100644 --- a/storage/ndb/src/kernel/blocks/diskpage.hpp +++ b/storage/ndb/src/kernel/blocks/diskpage.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/lgman.hpp b/storage/ndb/src/kernel/blocks/lgman.hpp index d2706818144..e8404955949 100644 --- a/storage/ndb/src/kernel/blocks/lgman.hpp +++ b/storage/ndb/src/kernel/blocks/lgman.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/mutexes.hpp b/storage/ndb/src/kernel/blocks/mutexes.hpp index 2eb248b3d5e..f904756335f 100644 --- a/storage/ndb/src/kernel/blocks/mutexes.hpp +++ b/storage/ndb/src/kernel/blocks/mutexes.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp b/storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp index 4db07591b60..9860c00afa0 100644 --- a/storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp +++ b/storage/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp index ae5afa7a57b..8ba058df835 100644 --- a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp +++ b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp index 56ecc8ddc39..7e5f8813da2 100644 --- a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp +++ b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrSysTable.cpp b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrSysTable.cpp index 323a94c3937..404efb3360e 100644 --- a/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrSysTable.cpp +++ b/storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrSysTable.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp b/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp index e4a01753acd..692e81f038b 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/AsyncFileTest/AsyncFileTest.cpp b/storage/ndb/src/kernel/blocks/ndbfs/AsyncFileTest/AsyncFileTest.cpp index 45b53b2693e..561905df2f3 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/AsyncFileTest/AsyncFileTest.cpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/AsyncFileTest/AsyncFileTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.cpp b/storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.cpp index 1202d14d699..cc0980e7c8a 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.cpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.hpp b/storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.hpp index 668b0e1b70e..75540e4ad5f 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.hpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/CircularIndex.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/Filename.cpp b/storage/ndb/src/kernel/blocks/ndbfs/Filename.cpp index 1749f551b99..b12031a2aad 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/Filename.cpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/Filename.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/Filename.hpp b/storage/ndb/src/kernel/blocks/ndbfs/Filename.hpp index 182e915a3fe..fc97acdb8a9 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/Filename.hpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/Filename.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.cpp b/storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.cpp index fa84a52414e..4e295774c9b 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.cpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp b/storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp index 411e7064efa..647059f8a84 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/MemoryChannelTest/MemoryChannelTest.cpp b/storage/ndb/src/kernel/blocks/ndbfs/MemoryChannelTest/MemoryChannelTest.cpp index 2ef4d5019ab..940045b397d 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/MemoryChannelTest/MemoryChannelTest.cpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/MemoryChannelTest/MemoryChannelTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp b/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp index 26bf8878852..a118dde3db2 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp b/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp index 302a46ff674..cd821c2f6ec 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/Ndbfs.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/OpenFiles.hpp b/storage/ndb/src/kernel/blocks/ndbfs/OpenFiles.hpp index f32ab915a92..a1f072649db 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/OpenFiles.hpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/OpenFiles.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/Pool.hpp b/storage/ndb/src/kernel/blocks/ndbfs/Pool.hpp index de0b4d1f437..ad82b90d763 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/Pool.hpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/Pool.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp b/storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp index 85970773e7f..a7b5a2871de 100644 --- a/storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp +++ b/storage/ndb/src/kernel/blocks/ndbfs/VoidFs.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/pgman.cpp b/storage/ndb/src/kernel/blocks/pgman.cpp index 21295944eab..f1b287a6ed6 100644 --- a/storage/ndb/src/kernel/blocks/pgman.cpp +++ b/storage/ndb/src/kernel/blocks/pgman.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/pgman.hpp b/storage/ndb/src/kernel/blocks/pgman.hpp index e3bf0fa5780..859743c806d 100644 --- a/storage/ndb/src/kernel/blocks/pgman.hpp +++ b/storage/ndb/src/kernel/blocks/pgman.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/print_file.cpp b/storage/ndb/src/kernel/blocks/print_file.cpp index 8b9723418b0..6d869e13000 100644 --- a/storage/ndb/src/kernel/blocks/print_file.cpp +++ b/storage/ndb/src/kernel/blocks/print_file.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp b/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp index 6a76ce5217a..29d34bd3f9d 100644 --- a/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp +++ b/storage/ndb/src/kernel/blocks/qmgr/Qmgr.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp b/storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp index 2f03bd56694..e7f64209414 100644 --- a/storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp +++ b/storage/ndb/src/kernel/blocks/qmgr/QmgrInit.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp b/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp index 23e7829481e..250a499f069 100644 --- a/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp +++ b/storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/qmgr/timer.hpp b/storage/ndb/src/kernel/blocks/qmgr/timer.hpp index 09b6de7b0db..11c47e7ee27 100644 --- a/storage/ndb/src/kernel/blocks/qmgr/timer.hpp +++ b/storage/ndb/src/kernel/blocks/qmgr/timer.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/record_types.hpp b/storage/ndb/src/kernel/blocks/record_types.hpp index 8eeace52299..d8bf8e3384f 100644 --- a/storage/ndb/src/kernel/blocks/record_types.hpp +++ b/storage/ndb/src/kernel/blocks/record_types.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/restore.cpp b/storage/ndb/src/kernel/blocks/restore.cpp index efc4bc1948a..07db366a161 100644 --- a/storage/ndb/src/kernel/blocks/restore.cpp +++ b/storage/ndb/src/kernel/blocks/restore.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/restore.hpp b/storage/ndb/src/kernel/blocks/restore.hpp index 4385be85fe4..d3a2eabe5c3 100644 --- a/storage/ndb/src/kernel/blocks/restore.hpp +++ b/storage/ndb/src/kernel/blocks/restore.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/suma/Suma.hpp b/storage/ndb/src/kernel/blocks/suma/Suma.hpp index 675706d5431..b62b8a37651 100644 --- a/storage/ndb/src/kernel/blocks/suma/Suma.hpp +++ b/storage/ndb/src/kernel/blocks/suma/Suma.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/suma/SumaInit.cpp b/storage/ndb/src/kernel/blocks/suma/SumaInit.cpp index 0248833978c..a5f4e2f8eb2 100644 --- a/storage/ndb/src/kernel/blocks/suma/SumaInit.cpp +++ b/storage/ndb/src/kernel/blocks/suma/SumaInit.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/trix/Trix.cpp b/storage/ndb/src/kernel/blocks/trix/Trix.cpp index 30dd75be385..302d833b222 100644 --- a/storage/ndb/src/kernel/blocks/trix/Trix.cpp +++ b/storage/ndb/src/kernel/blocks/trix/Trix.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/trix/Trix.hpp b/storage/ndb/src/kernel/blocks/trix/Trix.hpp index d806397682d..24d72b7004b 100644 --- a/storage/ndb/src/kernel/blocks/trix/Trix.hpp +++ b/storage/ndb/src/kernel/blocks/trix/Trix.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/tsman.cpp b/storage/ndb/src/kernel/blocks/tsman.cpp index ce5797cf209..67ede021cac 100644 --- a/storage/ndb/src/kernel/blocks/tsman.cpp +++ b/storage/ndb/src/kernel/blocks/tsman.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/blocks/tsman.hpp b/storage/ndb/src/kernel/blocks/tsman.hpp index 20019e6d4d1..579b6669b9c 100644 --- a/storage/ndb/src/kernel/blocks/tsman.hpp +++ b/storage/ndb/src/kernel/blocks/tsman.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/error/ErrorHandlingMacros.hpp b/storage/ndb/src/kernel/error/ErrorHandlingMacros.hpp index de85127e638..80e6de8f413 100644 --- a/storage/ndb/src/kernel/error/ErrorHandlingMacros.hpp +++ b/storage/ndb/src/kernel/error/ErrorHandlingMacros.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/error/ErrorReporter.cpp b/storage/ndb/src/kernel/error/ErrorReporter.cpp index 43307d43139..a2325d9ac93 100644 --- a/storage/ndb/src/kernel/error/ErrorReporter.cpp +++ b/storage/ndb/src/kernel/error/ErrorReporter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/error/ErrorReporter.hpp b/storage/ndb/src/kernel/error/ErrorReporter.hpp index a32270e85cf..84bc2b49817 100644 --- a/storage/ndb/src/kernel/error/ErrorReporter.hpp +++ b/storage/ndb/src/kernel/error/ErrorReporter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/error/Makefile.am b/storage/ndb/src/kernel/error/Makefile.am index 6db5c0e4ede..06002ec9d62 100644 --- a/storage/ndb/src/kernel/error/Makefile.am +++ b/storage/ndb/src/kernel/error/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2005 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/error/TimeModule.cpp b/storage/ndb/src/kernel/error/TimeModule.cpp index 2be734842ba..0a43c5f6fec 100644 --- a/storage/ndb/src/kernel/error/TimeModule.cpp +++ b/storage/ndb/src/kernel/error/TimeModule.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/error/TimeModule.hpp b/storage/ndb/src/kernel/error/TimeModule.hpp index 870e12eebc2..9b0e1c9922d 100644 --- a/storage/ndb/src/kernel/error/TimeModule.hpp +++ b/storage/ndb/src/kernel/error/TimeModule.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/error/ndbd_exit_codes.c b/storage/ndb/src/kernel/error/ndbd_exit_codes.c index b36ea3af8ee..11617a32bbc 100644 --- a/storage/ndb/src/kernel/error/ndbd_exit_codes.c +++ b/storage/ndb/src/kernel/error/ndbd_exit_codes.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/main.cpp b/storage/ndb/src/kernel/main.cpp index 641ebe70e24..91cab939b2b 100644 --- a/storage/ndb/src/kernel/main.cpp +++ b/storage/ndb/src/kernel/main.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Array.hpp b/storage/ndb/src/kernel/vm/Array.hpp index 770dd47f048..2dbc230c56a 100644 --- a/storage/ndb/src/kernel/vm/Array.hpp +++ b/storage/ndb/src/kernel/vm/Array.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/ArrayPool.hpp b/storage/ndb/src/kernel/vm/ArrayPool.hpp index 5aba0ad0f16..76ea558548d 100644 --- a/storage/ndb/src/kernel/vm/ArrayPool.hpp +++ b/storage/ndb/src/kernel/vm/ArrayPool.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/CArray.hpp b/storage/ndb/src/kernel/vm/CArray.hpp index b06a04bde24..2c5996ccca9 100644 --- a/storage/ndb/src/kernel/vm/CArray.hpp +++ b/storage/ndb/src/kernel/vm/CArray.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Callback.hpp b/storage/ndb/src/kernel/vm/Callback.hpp index 4cf67858ca0..d29bcea021d 100644 --- a/storage/ndb/src/kernel/vm/Callback.hpp +++ b/storage/ndb/src/kernel/vm/Callback.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/ClusterConfiguration.cpp b/storage/ndb/src/kernel/vm/ClusterConfiguration.cpp index 0f854f3504b..57cbea6df3e 100644 --- a/storage/ndb/src/kernel/vm/ClusterConfiguration.cpp +++ b/storage/ndb/src/kernel/vm/ClusterConfiguration.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/ClusterConfiguration.hpp b/storage/ndb/src/kernel/vm/ClusterConfiguration.hpp index 40509b63f19..10e48792567 100644 --- a/storage/ndb/src/kernel/vm/ClusterConfiguration.hpp +++ b/storage/ndb/src/kernel/vm/ClusterConfiguration.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Configuration.cpp b/storage/ndb/src/kernel/vm/Configuration.cpp index 72770d35cde..9f46ee62e56 100644 --- a/storage/ndb/src/kernel/vm/Configuration.cpp +++ b/storage/ndb/src/kernel/vm/Configuration.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Configuration.hpp b/storage/ndb/src/kernel/vm/Configuration.hpp index 918a889a171..a49515d126f 100644 --- a/storage/ndb/src/kernel/vm/Configuration.hpp +++ b/storage/ndb/src/kernel/vm/Configuration.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/DLCFifoList.hpp b/storage/ndb/src/kernel/vm/DLCFifoList.hpp index ce9e422ebd6..bbd8472aaf3 100644 --- a/storage/ndb/src/kernel/vm/DLCFifoList.hpp +++ b/storage/ndb/src/kernel/vm/DLCFifoList.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/DLCHashTable.hpp b/storage/ndb/src/kernel/vm/DLCHashTable.hpp index b8229b449c7..dceb0735a3c 100644 --- a/storage/ndb/src/kernel/vm/DLCHashTable.hpp +++ b/storage/ndb/src/kernel/vm/DLCHashTable.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/DLFifoList.hpp b/storage/ndb/src/kernel/vm/DLFifoList.hpp index da92390dd8f..24c326e2d39 100644 --- a/storage/ndb/src/kernel/vm/DLFifoList.hpp +++ b/storage/ndb/src/kernel/vm/DLFifoList.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/DLHashTable.hpp b/storage/ndb/src/kernel/vm/DLHashTable.hpp index b9d5f7c597f..b5beae8123b 100644 --- a/storage/ndb/src/kernel/vm/DLHashTable.hpp +++ b/storage/ndb/src/kernel/vm/DLHashTable.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/DLHashTable2.hpp b/storage/ndb/src/kernel/vm/DLHashTable2.hpp index 05340317adb..100acdc480c 100644 --- a/storage/ndb/src/kernel/vm/DLHashTable2.hpp +++ b/storage/ndb/src/kernel/vm/DLHashTable2.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/DLList.hpp b/storage/ndb/src/kernel/vm/DLList.hpp index 7184cfb6b9e..84253774155 100644 --- a/storage/ndb/src/kernel/vm/DLList.hpp +++ b/storage/ndb/src/kernel/vm/DLList.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/DataBuffer.hpp b/storage/ndb/src/kernel/vm/DataBuffer.hpp index cb9d6a85c88..b9fe50f843e 100644 --- a/storage/ndb/src/kernel/vm/DataBuffer.hpp +++ b/storage/ndb/src/kernel/vm/DataBuffer.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/DynArr256.cpp b/storage/ndb/src/kernel/vm/DynArr256.cpp index 4e73bb8830b..6146d0663a4 100644 --- a/storage/ndb/src/kernel/vm/DynArr256.cpp +++ b/storage/ndb/src/kernel/vm/DynArr256.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/DynArr256.hpp b/storage/ndb/src/kernel/vm/DynArr256.hpp index 780dee7e4bf..187bcc7c895 100644 --- a/storage/ndb/src/kernel/vm/DynArr256.hpp +++ b/storage/ndb/src/kernel/vm/DynArr256.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Emulator.cpp b/storage/ndb/src/kernel/vm/Emulator.cpp index e706dff154a..f99b9ca4eca 100644 --- a/storage/ndb/src/kernel/vm/Emulator.cpp +++ b/storage/ndb/src/kernel/vm/Emulator.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Emulator.hpp b/storage/ndb/src/kernel/vm/Emulator.hpp index 1ef98b72efb..dbb46939d37 100644 --- a/storage/ndb/src/kernel/vm/Emulator.hpp +++ b/storage/ndb/src/kernel/vm/Emulator.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/FastScheduler.cpp b/storage/ndb/src/kernel/vm/FastScheduler.cpp index 588887d1f63..db0a8e8e6cf 100644 --- a/storage/ndb/src/kernel/vm/FastScheduler.cpp +++ b/storage/ndb/src/kernel/vm/FastScheduler.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/FastScheduler.hpp b/storage/ndb/src/kernel/vm/FastScheduler.hpp index 0151007ea3e..851bd531f55 100644 --- a/storage/ndb/src/kernel/vm/FastScheduler.hpp +++ b/storage/ndb/src/kernel/vm/FastScheduler.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/GlobalData.hpp b/storage/ndb/src/kernel/vm/GlobalData.hpp index 51fdd21ed84..a33c51ca1fc 100644 --- a/storage/ndb/src/kernel/vm/GlobalData.hpp +++ b/storage/ndb/src/kernel/vm/GlobalData.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/KeyDescriptor.hpp b/storage/ndb/src/kernel/vm/KeyDescriptor.hpp index bab1316ae4a..14e44b34ebe 100644 --- a/storage/ndb/src/kernel/vm/KeyDescriptor.hpp +++ b/storage/ndb/src/kernel/vm/KeyDescriptor.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/KeyTable.hpp b/storage/ndb/src/kernel/vm/KeyTable.hpp index 56dbdc698b2..9653327c253 100644 --- a/storage/ndb/src/kernel/vm/KeyTable.hpp +++ b/storage/ndb/src/kernel/vm/KeyTable.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/KeyTable2.hpp b/storage/ndb/src/kernel/vm/KeyTable2.hpp index e781d10c92e..fb3f781ab4b 100644 --- a/storage/ndb/src/kernel/vm/KeyTable2.hpp +++ b/storage/ndb/src/kernel/vm/KeyTable2.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/KeyTable2Ref.hpp b/storage/ndb/src/kernel/vm/KeyTable2Ref.hpp index 3d8bd00e2e2..9a618f985d1 100644 --- a/storage/ndb/src/kernel/vm/KeyTable2Ref.hpp +++ b/storage/ndb/src/kernel/vm/KeyTable2Ref.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/LinearPool.hpp b/storage/ndb/src/kernel/vm/LinearPool.hpp index 49de4533f32..6368445fd9a 100644 --- a/storage/ndb/src/kernel/vm/LinearPool.hpp +++ b/storage/ndb/src/kernel/vm/LinearPool.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/LongSignal.hpp b/storage/ndb/src/kernel/vm/LongSignal.hpp index dc2c8bd31d3..6536a40f3cc 100644 --- a/storage/ndb/src/kernel/vm/LongSignal.hpp +++ b/storage/ndb/src/kernel/vm/LongSignal.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Makefile.am b/storage/ndb/src/kernel/vm/Makefile.am index 4964b4ea85a..1fc28685210 100644 --- a/storage/ndb/src/kernel/vm/Makefile.am +++ b/storage/ndb/src/kernel/vm/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2005 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Mutex.cpp b/storage/ndb/src/kernel/vm/Mutex.cpp index 250eff19b64..c6614774555 100644 --- a/storage/ndb/src/kernel/vm/Mutex.cpp +++ b/storage/ndb/src/kernel/vm/Mutex.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Mutex.hpp b/storage/ndb/src/kernel/vm/Mutex.hpp index ec177a75707..5817e426057 100644 --- a/storage/ndb/src/kernel/vm/Mutex.hpp +++ b/storage/ndb/src/kernel/vm/Mutex.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/NdbdSuperPool.cpp b/storage/ndb/src/kernel/vm/NdbdSuperPool.cpp index 717c354a180..c5f0a94c2b3 100644 --- a/storage/ndb/src/kernel/vm/NdbdSuperPool.cpp +++ b/storage/ndb/src/kernel/vm/NdbdSuperPool.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/NdbdSuperPool.hpp b/storage/ndb/src/kernel/vm/NdbdSuperPool.hpp index 2e9287e5ab1..a59e75802ba 100644 --- a/storage/ndb/src/kernel/vm/NdbdSuperPool.hpp +++ b/storage/ndb/src/kernel/vm/NdbdSuperPool.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Pool.cpp b/storage/ndb/src/kernel/vm/Pool.cpp index f252a601ac2..4226a5d935e 100644 --- a/storage/ndb/src/kernel/vm/Pool.cpp +++ b/storage/ndb/src/kernel/vm/Pool.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Pool.hpp b/storage/ndb/src/kernel/vm/Pool.hpp index a4e062078fb..608c7327d6c 100644 --- a/storage/ndb/src/kernel/vm/Pool.hpp +++ b/storage/ndb/src/kernel/vm/Pool.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Prio.hpp b/storage/ndb/src/kernel/vm/Prio.hpp index 3f14a3a6c74..3a958572682 100644 --- a/storage/ndb/src/kernel/vm/Prio.hpp +++ b/storage/ndb/src/kernel/vm/Prio.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/RWPool.cpp b/storage/ndb/src/kernel/vm/RWPool.cpp index 056b2149e2a..a3693749040 100644 --- a/storage/ndb/src/kernel/vm/RWPool.cpp +++ b/storage/ndb/src/kernel/vm/RWPool.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/RWPool.hpp b/storage/ndb/src/kernel/vm/RWPool.hpp index 13001b4d9dc..f65219a3268 100644 --- a/storage/ndb/src/kernel/vm/RWPool.hpp +++ b/storage/ndb/src/kernel/vm/RWPool.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/RequestTracker.hpp b/storage/ndb/src/kernel/vm/RequestTracker.hpp index cfd2a413231..5379833c8a0 100644 --- a/storage/ndb/src/kernel/vm/RequestTracker.hpp +++ b/storage/ndb/src/kernel/vm/RequestTracker.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Rope.cpp b/storage/ndb/src/kernel/vm/Rope.cpp index 35812845668..ea4c6703570 100644 --- a/storage/ndb/src/kernel/vm/Rope.cpp +++ b/storage/ndb/src/kernel/vm/Rope.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2006 MySQL AB +/* Copyright (c) 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/Rope.hpp b/storage/ndb/src/kernel/vm/Rope.hpp index 6cd7f962cc7..4fe8bd197f4 100644 --- a/storage/ndb/src/kernel/vm/Rope.hpp +++ b/storage/ndb/src/kernel/vm/Rope.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/SLFifoList.hpp b/storage/ndb/src/kernel/vm/SLFifoList.hpp index 7bd4baca515..d85bef39b12 100644 --- a/storage/ndb/src/kernel/vm/SLFifoList.hpp +++ b/storage/ndb/src/kernel/vm/SLFifoList.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/SLList.hpp b/storage/ndb/src/kernel/vm/SLList.hpp index f4e9440d078..5c451feb4db 100644 --- a/storage/ndb/src/kernel/vm/SLList.hpp +++ b/storage/ndb/src/kernel/vm/SLList.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/SafeCounter.cpp b/storage/ndb/src/kernel/vm/SafeCounter.cpp index 1623514f8f4..044db0048eb 100644 --- a/storage/ndb/src/kernel/vm/SafeCounter.cpp +++ b/storage/ndb/src/kernel/vm/SafeCounter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/SafeCounter.hpp b/storage/ndb/src/kernel/vm/SafeCounter.hpp index 093fd25c296..62d82663f70 100644 --- a/storage/ndb/src/kernel/vm/SafeCounter.hpp +++ b/storage/ndb/src/kernel/vm/SafeCounter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/SectionReader.cpp b/storage/ndb/src/kernel/vm/SectionReader.cpp index 44d70c2ec16..a05b9ec1c3c 100644 --- a/storage/ndb/src/kernel/vm/SectionReader.cpp +++ b/storage/ndb/src/kernel/vm/SectionReader.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/SectionReader.hpp b/storage/ndb/src/kernel/vm/SectionReader.hpp index 6297b08f76a..bbf60ce7519 100644 --- a/storage/ndb/src/kernel/vm/SectionReader.hpp +++ b/storage/ndb/src/kernel/vm/SectionReader.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/SignalCounter.hpp b/storage/ndb/src/kernel/vm/SignalCounter.hpp index b72c88cbf29..5f968eae489 100644 --- a/storage/ndb/src/kernel/vm/SignalCounter.hpp +++ b/storage/ndb/src/kernel/vm/SignalCounter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/SimBlockList.hpp b/storage/ndb/src/kernel/vm/SimBlockList.hpp index b820a53c026..7886ca7cabb 100644 --- a/storage/ndb/src/kernel/vm/SimBlockList.hpp +++ b/storage/ndb/src/kernel/vm/SimBlockList.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/SimplePropertiesSection.cpp b/storage/ndb/src/kernel/vm/SimplePropertiesSection.cpp index 1159ddd9ca7..9145d9c6d8d 100644 --- a/storage/ndb/src/kernel/vm/SimplePropertiesSection.cpp +++ b/storage/ndb/src/kernel/vm/SimplePropertiesSection.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/SimulatedBlock.cpp b/storage/ndb/src/kernel/vm/SimulatedBlock.cpp index 2963b8a02ad..807d22aec49 100644 --- a/storage/ndb/src/kernel/vm/SimulatedBlock.cpp +++ b/storage/ndb/src/kernel/vm/SimulatedBlock.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/SimulatedBlock.hpp b/storage/ndb/src/kernel/vm/SimulatedBlock.hpp index 31f219718e5..00bcf1277d8 100644 --- a/storage/ndb/src/kernel/vm/SimulatedBlock.hpp +++ b/storage/ndb/src/kernel/vm/SimulatedBlock.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/SuperPool.cpp b/storage/ndb/src/kernel/vm/SuperPool.cpp index ddaff73b289..98eede0b37f 100644 --- a/storage/ndb/src/kernel/vm/SuperPool.cpp +++ b/storage/ndb/src/kernel/vm/SuperPool.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/SuperPool.hpp b/storage/ndb/src/kernel/vm/SuperPool.hpp index 8fc6fc4ca80..d8c94c7aa0b 100644 --- a/storage/ndb/src/kernel/vm/SuperPool.hpp +++ b/storage/ndb/src/kernel/vm/SuperPool.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/ThreadConfig.cpp b/storage/ndb/src/kernel/vm/ThreadConfig.cpp index 935e489da7c..a22e751b472 100644 --- a/storage/ndb/src/kernel/vm/ThreadConfig.cpp +++ b/storage/ndb/src/kernel/vm/ThreadConfig.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/ThreadConfig.hpp b/storage/ndb/src/kernel/vm/ThreadConfig.hpp index 64b22e46025..cfdb0c58d7e 100644 --- a/storage/ndb/src/kernel/vm/ThreadConfig.hpp +++ b/storage/ndb/src/kernel/vm/ThreadConfig.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/TimeQueue.cpp b/storage/ndb/src/kernel/vm/TimeQueue.cpp index bb8c7a74edf..403a148c173 100644 --- a/storage/ndb/src/kernel/vm/TimeQueue.cpp +++ b/storage/ndb/src/kernel/vm/TimeQueue.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/TimeQueue.hpp b/storage/ndb/src/kernel/vm/TimeQueue.hpp index 53e9c6ef95e..a60fb302aab 100644 --- a/storage/ndb/src/kernel/vm/TimeQueue.hpp +++ b/storage/ndb/src/kernel/vm/TimeQueue.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/TransporterCallback.cpp b/storage/ndb/src/kernel/vm/TransporterCallback.cpp index 398b7965156..4a28b572db8 100644 --- a/storage/ndb/src/kernel/vm/TransporterCallback.cpp +++ b/storage/ndb/src/kernel/vm/TransporterCallback.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/VMSignal.cpp b/storage/ndb/src/kernel/vm/VMSignal.cpp index cee9aa2911b..c500a6872e8 100644 --- a/storage/ndb/src/kernel/vm/VMSignal.cpp +++ b/storage/ndb/src/kernel/vm/VMSignal.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/VMSignal.hpp b/storage/ndb/src/kernel/vm/VMSignal.hpp index e92335dbfa2..21db10915ab 100644 --- a/storage/ndb/src/kernel/vm/VMSignal.hpp +++ b/storage/ndb/src/kernel/vm/VMSignal.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/WOPool.cpp b/storage/ndb/src/kernel/vm/WOPool.cpp index e318001da30..b2fa59c527b 100644 --- a/storage/ndb/src/kernel/vm/WOPool.cpp +++ b/storage/ndb/src/kernel/vm/WOPool.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/WOPool.hpp b/storage/ndb/src/kernel/vm/WOPool.hpp index f38716b98f3..bbda9185e74 100644 --- a/storage/ndb/src/kernel/vm/WOPool.hpp +++ b/storage/ndb/src/kernel/vm/WOPool.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/WaitQueue.hpp b/storage/ndb/src/kernel/vm/WaitQueue.hpp index fd9bf366d2a..1f965bc64c5 100644 --- a/storage/ndb/src/kernel/vm/WaitQueue.hpp +++ b/storage/ndb/src/kernel/vm/WaitQueue.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/WatchDog.cpp b/storage/ndb/src/kernel/vm/WatchDog.cpp index a7f5e8f5c2b..ff9a32688b1 100644 --- a/storage/ndb/src/kernel/vm/WatchDog.cpp +++ b/storage/ndb/src/kernel/vm/WatchDog.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/WatchDog.hpp b/storage/ndb/src/kernel/vm/WatchDog.hpp index 1d91c2451c3..ab11d2eec8d 100644 --- a/storage/ndb/src/kernel/vm/WatchDog.hpp +++ b/storage/ndb/src/kernel/vm/WatchDog.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/al_test/arrayListTest.cpp b/storage/ndb/src/kernel/vm/al_test/arrayListTest.cpp index 08a73084d53..c8381368704 100644 --- a/storage/ndb/src/kernel/vm/al_test/arrayListTest.cpp +++ b/storage/ndb/src/kernel/vm/al_test/arrayListTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/al_test/arrayPoolTest.cpp b/storage/ndb/src/kernel/vm/al_test/arrayPoolTest.cpp index 835b35994ce..dbc7acb16ef 100644 --- a/storage/ndb/src/kernel/vm/al_test/arrayPoolTest.cpp +++ b/storage/ndb/src/kernel/vm/al_test/arrayPoolTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/al_test/main.cpp b/storage/ndb/src/kernel/vm/al_test/main.cpp index efdc16b1cbc..84715d7a808 100644 --- a/storage/ndb/src/kernel/vm/al_test/main.cpp +++ b/storage/ndb/src/kernel/vm/al_test/main.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/bench_pool.cpp b/storage/ndb/src/kernel/vm/bench_pool.cpp index dab4078fefc..0736e8d5743 100644 --- a/storage/ndb/src/kernel/vm/bench_pool.cpp +++ b/storage/ndb/src/kernel/vm/bench_pool.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/ndbd_malloc.cpp b/storage/ndb/src/kernel/vm/ndbd_malloc.cpp index 21a26ff11d8..d85a7a77fea 100644 --- a/storage/ndb/src/kernel/vm/ndbd_malloc.cpp +++ b/storage/ndb/src/kernel/vm/ndbd_malloc.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/ndbd_malloc.hpp b/storage/ndb/src/kernel/vm/ndbd_malloc.hpp index dbdd6b53a0e..19b183a5cfd 100644 --- a/storage/ndb/src/kernel/vm/ndbd_malloc.hpp +++ b/storage/ndb/src/kernel/vm/ndbd_malloc.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp b/storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp index e2100e66baa..b223e6991dc 100644 --- a/storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp +++ b/storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp b/storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp index 78e41f1cabd..290a625075b 100644 --- a/storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp +++ b/storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/pc.hpp b/storage/ndb/src/kernel/vm/pc.hpp index cf03f676ae1..ed7291e174f 100644 --- a/storage/ndb/src/kernel/vm/pc.hpp +++ b/storage/ndb/src/kernel/vm/pc.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/testCopy/rr.cpp b/storage/ndb/src/kernel/vm/testCopy/rr.cpp index 362cd1d5136..a8527aca8a1 100644 --- a/storage/ndb/src/kernel/vm/testCopy/rr.cpp +++ b/storage/ndb/src/kernel/vm/testCopy/rr.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/testCopy/testCopy.cpp b/storage/ndb/src/kernel/vm/testCopy/testCopy.cpp index 521f93f4df5..4c3e8b5e871 100644 --- a/storage/ndb/src/kernel/vm/testCopy/testCopy.cpp +++ b/storage/ndb/src/kernel/vm/testCopy/testCopy.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/testDataBuffer/testDataBuffer.cpp b/storage/ndb/src/kernel/vm/testDataBuffer/testDataBuffer.cpp index 1ebdd4c176b..04d89ad6517 100644 --- a/storage/ndb/src/kernel/vm/testDataBuffer/testDataBuffer.cpp +++ b/storage/ndb/src/kernel/vm/testDataBuffer/testDataBuffer.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/testLongSig/testLongSig.cpp b/storage/ndb/src/kernel/vm/testLongSig/testLongSig.cpp index 0d2a0e80113..e837fd28573 100644 --- a/storage/ndb/src/kernel/vm/testLongSig/testLongSig.cpp +++ b/storage/ndb/src/kernel/vm/testLongSig/testLongSig.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/testSimplePropertiesSection/test.cpp b/storage/ndb/src/kernel/vm/testSimplePropertiesSection/test.cpp index feabe769a31..57744bc731b 100644 --- a/storage/ndb/src/kernel/vm/testSimplePropertiesSection/test.cpp +++ b/storage/ndb/src/kernel/vm/testSimplePropertiesSection/test.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/kernel/vm/testSuperPool.cpp b/storage/ndb/src/kernel/vm/testSuperPool.cpp index 5ee13681901..a925a78a6b9 100644 --- a/storage/ndb/src/kernel/vm/testSuperPool.cpp +++ b/storage/ndb/src/kernel/vm/testSuperPool.cpp @@ -6,7 +6,7 @@ _eof_ exit $? #endif -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmapi/LocalConfig.cpp b/storage/ndb/src/mgmapi/LocalConfig.cpp index 476e2d6dd84..0f746364f07 100644 --- a/storage/ndb/src/mgmapi/LocalConfig.cpp +++ b/storage/ndb/src/mgmapi/LocalConfig.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmapi/LocalConfig.hpp b/storage/ndb/src/mgmapi/LocalConfig.hpp index 7a583077913..dee4a40731f 100644 --- a/storage/ndb/src/mgmapi/LocalConfig.hpp +++ b/storage/ndb/src/mgmapi/LocalConfig.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmapi/Makefile.am b/storage/ndb/src/mgmapi/Makefile.am index 96ee65d7d9e..65e9692797f 100644 --- a/storage/ndb/src/mgmapi/Makefile.am +++ b/storage/ndb/src/mgmapi/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2005 MySQL AB +# Copyright (c) 2004-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmapi/mgmapi.cpp b/storage/ndb/src/mgmapi/mgmapi.cpp index 662e5c22f48..d69ced68e01 100644 --- a/storage/ndb/src/mgmapi/mgmapi.cpp +++ b/storage/ndb/src/mgmapi/mgmapi.cpp @@ -1,4 +1,4 @@ - /* Copyright (C) 2003 MySQL AB + /* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmapi/mgmapi_configuration.cpp b/storage/ndb/src/mgmapi/mgmapi_configuration.cpp index 553b079a22f..018400d64c5 100644 --- a/storage/ndb/src/mgmapi/mgmapi_configuration.cpp +++ b/storage/ndb/src/mgmapi/mgmapi_configuration.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2005 MySQL AB +/* Copyright (c) 2004-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmapi/mgmapi_configuration.hpp b/storage/ndb/src/mgmapi/mgmapi_configuration.hpp index 6088114016e..fd88ffaaa1b 100644 --- a/storage/ndb/src/mgmapi/mgmapi_configuration.hpp +++ b/storage/ndb/src/mgmapi/mgmapi_configuration.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmapi/mgmapi_internal.h b/storage/ndb/src/mgmapi/mgmapi_internal.h index 192bc57afd9..9223b8b3b71 100644 --- a/storage/ndb/src/mgmapi/mgmapi_internal.h +++ b/storage/ndb/src/mgmapi/mgmapi_internal.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmapi/ndb_logevent.cpp b/storage/ndb/src/mgmapi/ndb_logevent.cpp index fbf026fd79d..445815c6267 100644 --- a/storage/ndb/src/mgmapi/ndb_logevent.cpp +++ b/storage/ndb/src/mgmapi/ndb_logevent.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmapi/ndb_logevent.hpp b/storage/ndb/src/mgmapi/ndb_logevent.hpp index df0a657e9b1..db4a3a621fa 100644 --- a/storage/ndb/src/mgmapi/ndb_logevent.hpp +++ b/storage/ndb/src/mgmapi/ndb_logevent.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmapi/test/keso.c b/storage/ndb/src/mgmapi/test/keso.c index 922bace6b91..0ef3de50bde 100644 --- a/storage/ndb/src/mgmapi/test/keso.c +++ b/storage/ndb/src/mgmapi/test/keso.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmapi/test/mgmSrvApi.cpp b/storage/ndb/src/mgmapi/test/mgmSrvApi.cpp index 5a8acbfadc5..c7ff6b3d7a5 100644 --- a/storage/ndb/src/mgmapi/test/mgmSrvApi.cpp +++ b/storage/ndb/src/mgmapi/test/mgmSrvApi.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmclient/CommandInterpreter.cpp b/storage/ndb/src/mgmclient/CommandInterpreter.cpp index 7057525efc7..fd8ea851021 100644 --- a/storage/ndb/src/mgmclient/CommandInterpreter.cpp +++ b/storage/ndb/src/mgmclient/CommandInterpreter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmclient/Makefile.am b/storage/ndb/src/mgmclient/Makefile.am index 41f659cf68d..c0e97b519ab 100644 --- a/storage/ndb/src/mgmclient/Makefile.am +++ b/storage/ndb/src/mgmclient/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmclient/main.cpp b/storage/ndb/src/mgmclient/main.cpp index fbd81c71700..593b6a9842a 100644 --- a/storage/ndb/src/mgmclient/main.cpp +++ b/storage/ndb/src/mgmclient/main.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmclient/ndb_mgmclient.h b/storage/ndb/src/mgmclient/ndb_mgmclient.h index edb57e25ccb..d4247871c41 100644 --- a/storage/ndb/src/mgmclient/ndb_mgmclient.h +++ b/storage/ndb/src/mgmclient/ndb_mgmclient.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmclient/ndb_mgmclient.hpp b/storage/ndb/src/mgmclient/ndb_mgmclient.hpp index e21f57ba323..5b20c7072c5 100644 --- a/storage/ndb/src/mgmclient/ndb_mgmclient.hpp +++ b/storage/ndb/src/mgmclient/ndb_mgmclient.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmclient/test_cpcd/test_cpcd.cpp b/storage/ndb/src/mgmclient/test_cpcd/test_cpcd.cpp index b70d75e5fbe..1b5122f6bbe 100644 --- a/storage/ndb/src/mgmclient/test_cpcd/test_cpcd.cpp +++ b/storage/ndb/src/mgmclient/test_cpcd/test_cpcd.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/Config.cpp b/storage/ndb/src/mgmsrv/Config.cpp index 0bbf3580b5c..82bfaf5f0c7 100644 --- a/storage/ndb/src/mgmsrv/Config.cpp +++ b/storage/ndb/src/mgmsrv/Config.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/Config.hpp b/storage/ndb/src/mgmsrv/Config.hpp index dd052b264d7..4c75b956d4a 100644 --- a/storage/ndb/src/mgmsrv/Config.hpp +++ b/storage/ndb/src/mgmsrv/Config.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/ConfigInfo.cpp b/storage/ndb/src/mgmsrv/ConfigInfo.cpp index 6e560ff2701..813a27e7590 100644 --- a/storage/ndb/src/mgmsrv/ConfigInfo.cpp +++ b/storage/ndb/src/mgmsrv/ConfigInfo.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/ConfigInfo.hpp b/storage/ndb/src/mgmsrv/ConfigInfo.hpp index 94543dbdc5e..d0ba44e77fd 100644 --- a/storage/ndb/src/mgmsrv/ConfigInfo.hpp +++ b/storage/ndb/src/mgmsrv/ConfigInfo.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/InitConfigFileParser.hpp b/storage/ndb/src/mgmsrv/InitConfigFileParser.hpp index 64ccead1d33..7703b8526c5 100644 --- a/storage/ndb/src/mgmsrv/InitConfigFileParser.hpp +++ b/storage/ndb/src/mgmsrv/InitConfigFileParser.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/MgmtSrvr.cpp b/storage/ndb/src/mgmsrv/MgmtSrvr.cpp index 184d51bad78..4d916fad9b9 100644 --- a/storage/ndb/src/mgmsrv/MgmtSrvr.cpp +++ b/storage/ndb/src/mgmsrv/MgmtSrvr.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/MgmtSrvr.hpp b/storage/ndb/src/mgmsrv/MgmtSrvr.hpp index 90287554ef8..564a70e37f7 100644 --- a/storage/ndb/src/mgmsrv/MgmtSrvr.hpp +++ b/storage/ndb/src/mgmsrv/MgmtSrvr.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/MgmtSrvrConfig.cpp b/storage/ndb/src/mgmsrv/MgmtSrvrConfig.cpp index cc101eacc22..0f713bbb95a 100644 --- a/storage/ndb/src/mgmsrv/MgmtSrvrConfig.cpp +++ b/storage/ndb/src/mgmsrv/MgmtSrvrConfig.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp b/storage/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp index a8fd443497f..92cd03a35cd 100644 --- a/storage/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp +++ b/storage/ndb/src/mgmsrv/MgmtSrvrGeneralSignalHandling.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/Services.cpp b/storage/ndb/src/mgmsrv/Services.cpp index eeae61025b1..5d28f33697e 100644 --- a/storage/ndb/src/mgmsrv/Services.cpp +++ b/storage/ndb/src/mgmsrv/Services.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/Services.hpp b/storage/ndb/src/mgmsrv/Services.hpp index 76f839e3aab..e417fabd9af 100644 --- a/storage/ndb/src/mgmsrv/Services.hpp +++ b/storage/ndb/src/mgmsrv/Services.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/SignalQueue.cpp b/storage/ndb/src/mgmsrv/SignalQueue.cpp index d1c29dc617d..08bf1c05906 100644 --- a/storage/ndb/src/mgmsrv/SignalQueue.cpp +++ b/storage/ndb/src/mgmsrv/SignalQueue.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/SignalQueue.hpp b/storage/ndb/src/mgmsrv/SignalQueue.hpp index cb0ed2e4ea1..78f5b0bfb8c 100644 --- a/storage/ndb/src/mgmsrv/SignalQueue.hpp +++ b/storage/ndb/src/mgmsrv/SignalQueue.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/convertStrToInt.cpp b/storage/ndb/src/mgmsrv/convertStrToInt.cpp index 4622a76e3db..75cb5f3f863 100644 --- a/storage/ndb/src/mgmsrv/convertStrToInt.cpp +++ b/storage/ndb/src/mgmsrv/convertStrToInt.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/convertStrToInt.hpp b/storage/ndb/src/mgmsrv/convertStrToInt.hpp index 163f8198932..3f4e79f1cde 100644 --- a/storage/ndb/src/mgmsrv/convertStrToInt.hpp +++ b/storage/ndb/src/mgmsrv/convertStrToInt.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/main.cpp b/storage/ndb/src/mgmsrv/main.cpp index 16c560868ef..09fae66997e 100644 --- a/storage/ndb/src/mgmsrv/main.cpp +++ b/storage/ndb/src/mgmsrv/main.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/mgmsrv/mkconfig/mkconfig.cpp b/storage/ndb/src/mgmsrv/mkconfig/mkconfig.cpp index 5e8a03aacd1..e4a5baeab6f 100644 --- a/storage/ndb/src/mgmsrv/mkconfig/mkconfig.cpp +++ b/storage/ndb/src/mgmsrv/mkconfig/mkconfig.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/API.hpp b/storage/ndb/src/ndbapi/API.hpp index ca8473d99d8..7731c4d137a 100644 --- a/storage/ndb/src/ndbapi/API.hpp +++ b/storage/ndb/src/ndbapi/API.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/ClusterMgr.cpp b/storage/ndb/src/ndbapi/ClusterMgr.cpp index f5cc44f70d7..91d92551304 100644 --- a/storage/ndb/src/ndbapi/ClusterMgr.cpp +++ b/storage/ndb/src/ndbapi/ClusterMgr.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/ClusterMgr.hpp b/storage/ndb/src/ndbapi/ClusterMgr.hpp index 0a261eb202f..a8be500de71 100644 --- a/storage/ndb/src/ndbapi/ClusterMgr.hpp +++ b/storage/ndb/src/ndbapi/ClusterMgr.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/DictCache.hpp b/storage/ndb/src/ndbapi/DictCache.hpp index 9250ec7b196..ed0f33e726b 100644 --- a/storage/ndb/src/ndbapi/DictCache.hpp +++ b/storage/ndb/src/ndbapi/DictCache.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/Makefile.am b/storage/ndb/src/ndbapi/Makefile.am index 8ff427772b0..83b7f88a682 100644 --- a/storage/ndb/src/ndbapi/Makefile.am +++ b/storage/ndb/src/ndbapi/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2006 MySQL AB +# Copyright (c) 2004-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/Ndb.cpp b/storage/ndb/src/ndbapi/Ndb.cpp index e6a1c2cfcfd..2c9a0274581 100644 --- a/storage/ndb/src/ndbapi/Ndb.cpp +++ b/storage/ndb/src/ndbapi/Ndb.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbApiSignal.cpp b/storage/ndb/src/ndbapi/NdbApiSignal.cpp index b19b112ee2c..524851ddeb0 100644 --- a/storage/ndb/src/ndbapi/NdbApiSignal.cpp +++ b/storage/ndb/src/ndbapi/NdbApiSignal.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbApiSignal.hpp b/storage/ndb/src/ndbapi/NdbApiSignal.hpp index bd07f2665bf..8fe96cd724f 100644 --- a/storage/ndb/src/ndbapi/NdbApiSignal.hpp +++ b/storage/ndb/src/ndbapi/NdbApiSignal.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbBlob.cpp b/storage/ndb/src/ndbapi/NdbBlob.cpp index f3d1dbe3dd1..19a28b44d73 100644 --- a/storage/ndb/src/ndbapi/NdbBlob.cpp +++ b/storage/ndb/src/ndbapi/NdbBlob.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbBlobImpl.hpp b/storage/ndb/src/ndbapi/NdbBlobImpl.hpp index 74e3473d3c4..7fedafab68a 100644 --- a/storage/ndb/src/ndbapi/NdbBlobImpl.hpp +++ b/storage/ndb/src/ndbapi/NdbBlobImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbDictionary.cpp b/storage/ndb/src/ndbapi/NdbDictionary.cpp index a4395fc4b9c..ae6c2367329 100644 --- a/storage/ndb/src/ndbapi/NdbDictionary.cpp +++ b/storage/ndb/src/ndbapi/NdbDictionary.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp b/storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp index 0d226a97621..cebb62f7d7c 100644 --- a/storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp +++ b/storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp b/storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp index aa9bd174471..02fabfe5c88 100644 --- a/storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp +++ b/storage/ndb/src/ndbapi/NdbDictionaryImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbErrorOut.cpp b/storage/ndb/src/ndbapi/NdbErrorOut.cpp index 703abbb8c9e..8201c302ecd 100644 --- a/storage/ndb/src/ndbapi/NdbErrorOut.cpp +++ b/storage/ndb/src/ndbapi/NdbErrorOut.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbImpl.hpp b/storage/ndb/src/ndbapi/NdbImpl.hpp index 39787b1d4be..8f3edda9b9b 100644 --- a/storage/ndb/src/ndbapi/NdbImpl.hpp +++ b/storage/ndb/src/ndbapi/NdbImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbIndexOperation.cpp b/storage/ndb/src/ndbapi/NdbIndexOperation.cpp index 921769f09e3..70893dc4f76 100644 --- a/storage/ndb/src/ndbapi/NdbIndexOperation.cpp +++ b/storage/ndb/src/ndbapi/NdbIndexOperation.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbIndexStat.cpp b/storage/ndb/src/ndbapi/NdbIndexStat.cpp index 0ce96b1b4d9..68c99a039bf 100644 --- a/storage/ndb/src/ndbapi/NdbIndexStat.cpp +++ b/storage/ndb/src/ndbapi/NdbIndexStat.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbLinHash.hpp b/storage/ndb/src/ndbapi/NdbLinHash.hpp index f0399d30233..0e7ae6c42f6 100644 --- a/storage/ndb/src/ndbapi/NdbLinHash.hpp +++ b/storage/ndb/src/ndbapi/NdbLinHash.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbOperation.cpp b/storage/ndb/src/ndbapi/NdbOperation.cpp index ddaf5d0b233..7f737e63926 100644 --- a/storage/ndb/src/ndbapi/NdbOperation.cpp +++ b/storage/ndb/src/ndbapi/NdbOperation.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbOperationDefine.cpp b/storage/ndb/src/ndbapi/NdbOperationDefine.cpp index 21a6185347e..f12a7dfc2f9 100644 --- a/storage/ndb/src/ndbapi/NdbOperationDefine.cpp +++ b/storage/ndb/src/ndbapi/NdbOperationDefine.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbOperationExec.cpp b/storage/ndb/src/ndbapi/NdbOperationExec.cpp index cd1ac44d82c..9d4c66df384 100644 --- a/storage/ndb/src/ndbapi/NdbOperationExec.cpp +++ b/storage/ndb/src/ndbapi/NdbOperationExec.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbOperationInt.cpp b/storage/ndb/src/ndbapi/NdbOperationInt.cpp index f69211cb78b..3debcea5eac 100644 --- a/storage/ndb/src/ndbapi/NdbOperationInt.cpp +++ b/storage/ndb/src/ndbapi/NdbOperationInt.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbOperationScan.cpp b/storage/ndb/src/ndbapi/NdbOperationScan.cpp index aad24159455..208e84b61b4 100644 --- a/storage/ndb/src/ndbapi/NdbOperationScan.cpp +++ b/storage/ndb/src/ndbapi/NdbOperationScan.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbOperationSearch.cpp b/storage/ndb/src/ndbapi/NdbOperationSearch.cpp index 605c66d9859..11c72da4d32 100644 --- a/storage/ndb/src/ndbapi/NdbOperationSearch.cpp +++ b/storage/ndb/src/ndbapi/NdbOperationSearch.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbPool.cpp b/storage/ndb/src/ndbapi/NdbPool.cpp index 9a83cade52b..cf09a4b1634 100644 --- a/storage/ndb/src/ndbapi/NdbPool.cpp +++ b/storage/ndb/src/ndbapi/NdbPool.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbPoolImpl.cpp b/storage/ndb/src/ndbapi/NdbPoolImpl.cpp index e5d1b000601..b9c6b293422 100644 --- a/storage/ndb/src/ndbapi/NdbPoolImpl.cpp +++ b/storage/ndb/src/ndbapi/NdbPoolImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbPoolImpl.hpp b/storage/ndb/src/ndbapi/NdbPoolImpl.hpp index f4dbaf009cb..1f7a45f5625 100644 --- a/storage/ndb/src/ndbapi/NdbPoolImpl.hpp +++ b/storage/ndb/src/ndbapi/NdbPoolImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbRecAttr.cpp b/storage/ndb/src/ndbapi/NdbRecAttr.cpp index 38ca14085f0..7acedf7078e 100644 --- a/storage/ndb/src/ndbapi/NdbRecAttr.cpp +++ b/storage/ndb/src/ndbapi/NdbRecAttr.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbReceiver.cpp b/storage/ndb/src/ndbapi/NdbReceiver.cpp index 5a311bcbefe..4fab9944a5f 100644 --- a/storage/ndb/src/ndbapi/NdbReceiver.cpp +++ b/storage/ndb/src/ndbapi/NdbReceiver.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbScanFilter.cpp b/storage/ndb/src/ndbapi/NdbScanFilter.cpp index 25f74ce71a4..f361c8e1e6f 100644 --- a/storage/ndb/src/ndbapi/NdbScanFilter.cpp +++ b/storage/ndb/src/ndbapi/NdbScanFilter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbScanOperation.cpp b/storage/ndb/src/ndbapi/NdbScanOperation.cpp index 96a3ce4332e..30ebd34b36c 100644 --- a/storage/ndb/src/ndbapi/NdbScanOperation.cpp +++ b/storage/ndb/src/ndbapi/NdbScanOperation.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbTransaction.cpp b/storage/ndb/src/ndbapi/NdbTransaction.cpp index 17c7188bff2..d7baa75925f 100644 --- a/storage/ndb/src/ndbapi/NdbTransaction.cpp +++ b/storage/ndb/src/ndbapi/NdbTransaction.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbTransactionScan.cpp b/storage/ndb/src/ndbapi/NdbTransactionScan.cpp index a2bbf45fbb5..ed7ffbd34b2 100644 --- a/storage/ndb/src/ndbapi/NdbTransactionScan.cpp +++ b/storage/ndb/src/ndbapi/NdbTransactionScan.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbUtil.cpp b/storage/ndb/src/ndbapi/NdbUtil.cpp index c0087e51777..8ba04c55cce 100644 --- a/storage/ndb/src/ndbapi/NdbUtil.cpp +++ b/storage/ndb/src/ndbapi/NdbUtil.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbUtil.hpp b/storage/ndb/src/ndbapi/NdbUtil.hpp index f76b21cfceb..9332ed3927c 100644 --- a/storage/ndb/src/ndbapi/NdbUtil.hpp +++ b/storage/ndb/src/ndbapi/NdbUtil.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/NdbWaiter.hpp b/storage/ndb/src/ndbapi/NdbWaiter.hpp index 8a82564dbac..826511f690e 100644 --- a/storage/ndb/src/ndbapi/NdbWaiter.hpp +++ b/storage/ndb/src/ndbapi/NdbWaiter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. diff --git a/storage/ndb/src/ndbapi/Ndberr.cpp b/storage/ndb/src/ndbapi/Ndberr.cpp index 8fda3887cc1..a1d95de7f43 100644 --- a/storage/ndb/src/ndbapi/Ndberr.cpp +++ b/storage/ndb/src/ndbapi/Ndberr.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/Ndbif.cpp b/storage/ndb/src/ndbapi/Ndbif.cpp index aa50a87dea8..212b25fb2ab 100644 --- a/storage/ndb/src/ndbapi/Ndbif.cpp +++ b/storage/ndb/src/ndbapi/Ndbif.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/Ndbinit.cpp b/storage/ndb/src/ndbapi/Ndbinit.cpp index 1863aff8136..7ed7ae9b7d2 100644 --- a/storage/ndb/src/ndbapi/Ndbinit.cpp +++ b/storage/ndb/src/ndbapi/Ndbinit.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/Ndblist.cpp b/storage/ndb/src/ndbapi/Ndblist.cpp index a9e9124edd0..ed1ddf3e30f 100644 --- a/storage/ndb/src/ndbapi/Ndblist.cpp +++ b/storage/ndb/src/ndbapi/Ndblist.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/ObjectMap.cpp b/storage/ndb/src/ndbapi/ObjectMap.cpp index c87911a10d4..69faa2da610 100644 --- a/storage/ndb/src/ndbapi/ObjectMap.cpp +++ b/storage/ndb/src/ndbapi/ObjectMap.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/ObjectMap.hpp b/storage/ndb/src/ndbapi/ObjectMap.hpp index bc171649840..929e8b17799 100644 --- a/storage/ndb/src/ndbapi/ObjectMap.hpp +++ b/storage/ndb/src/ndbapi/ObjectMap.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/SignalSender.cpp b/storage/ndb/src/ndbapi/SignalSender.cpp index 70e65200942..c3b2f9f0a17 100644 --- a/storage/ndb/src/ndbapi/SignalSender.cpp +++ b/storage/ndb/src/ndbapi/SignalSender.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/SignalSender.hpp b/storage/ndb/src/ndbapi/SignalSender.hpp index 4cad759a334..77ad95f9c89 100644 --- a/storage/ndb/src/ndbapi/SignalSender.hpp +++ b/storage/ndb/src/ndbapi/SignalSender.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/TransporterFacade.cpp b/storage/ndb/src/ndbapi/TransporterFacade.cpp index 22eee859ef3..155d0ab8c9a 100644 --- a/storage/ndb/src/ndbapi/TransporterFacade.cpp +++ b/storage/ndb/src/ndbapi/TransporterFacade.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/TransporterFacade.hpp b/storage/ndb/src/ndbapi/TransporterFacade.hpp index 23fea8792f7..3d5b36fa8ea 100644 --- a/storage/ndb/src/ndbapi/TransporterFacade.hpp +++ b/storage/ndb/src/ndbapi/TransporterFacade.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/ndb_cluster_connection.cpp b/storage/ndb/src/ndbapi/ndb_cluster_connection.cpp index 38744fbdeba..a96237cd115 100644 --- a/storage/ndb/src/ndbapi/ndb_cluster_connection.cpp +++ b/storage/ndb/src/ndbapi/ndb_cluster_connection.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/ndb_cluster_connection_impl.hpp b/storage/ndb/src/ndbapi/ndb_cluster_connection_impl.hpp index ba488c56ec7..2e058140f40 100644 --- a/storage/ndb/src/ndbapi/ndb_cluster_connection_impl.hpp +++ b/storage/ndb/src/ndbapi/ndb_cluster_connection_impl.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/ndberror.c b/storage/ndb/src/ndbapi/ndberror.c index 363e25fc519..fc1bb1f7b7a 100644 --- a/storage/ndb/src/ndbapi/ndberror.c +++ b/storage/ndb/src/ndbapi/ndberror.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/signal-sender/SignalSender.cpp b/storage/ndb/src/ndbapi/signal-sender/SignalSender.cpp index faca172a93e..f43d160ce0b 100644 --- a/storage/ndb/src/ndbapi/signal-sender/SignalSender.cpp +++ b/storage/ndb/src/ndbapi/signal-sender/SignalSender.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/src/ndbapi/signal-sender/SignalSender.hpp b/storage/ndb/src/ndbapi/signal-sender/SignalSender.hpp index e1ed4ba68ed..ee140f05e49 100644 --- a/storage/ndb/src/ndbapi/signal-sender/SignalSender.hpp +++ b/storage/ndb/src/ndbapi/signal-sender/SignalSender.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/Makefile.am b/storage/ndb/test/Makefile.am index c746f526769..b871536db5f 100644 --- a/storage/ndb/test/Makefile.am +++ b/storage/ndb/test/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/AtrtClient.hpp b/storage/ndb/test/include/AtrtClient.hpp index 5728aca2500..759a303e645 100644 --- a/storage/ndb/test/include/AtrtClient.hpp +++ b/storage/ndb/test/include/AtrtClient.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/CpcClient.hpp b/storage/ndb/test/include/CpcClient.hpp index a743499566f..7be1bd0d641 100644 --- a/storage/ndb/test/include/CpcClient.hpp +++ b/storage/ndb/test/include/CpcClient.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/DbUtil.hpp b/storage/ndb/test/include/DbUtil.hpp index d865c92f9a3..a24451ad879 100755 --- a/storage/ndb/test/include/DbUtil.hpp +++ b/storage/ndb/test/include/DbUtil.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2007 MySQL AB +/* Copyright (c) 2007, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/HugoAsynchTransactions.hpp b/storage/ndb/test/include/HugoAsynchTransactions.hpp index bc79b8d5134..1674e6269ab 100644 --- a/storage/ndb/test/include/HugoAsynchTransactions.hpp +++ b/storage/ndb/test/include/HugoAsynchTransactions.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/HugoCalculator.hpp b/storage/ndb/test/include/HugoCalculator.hpp index 4cae35e0197..6d6607bae46 100644 --- a/storage/ndb/test/include/HugoCalculator.hpp +++ b/storage/ndb/test/include/HugoCalculator.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/HugoOperations.hpp b/storage/ndb/test/include/HugoOperations.hpp index 91e593a2b26..be8347b8e70 100644 --- a/storage/ndb/test/include/HugoOperations.hpp +++ b/storage/ndb/test/include/HugoOperations.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/HugoTransactions.hpp b/storage/ndb/test/include/HugoTransactions.hpp index e8f7b33e0ed..d3ce242621d 100644 --- a/storage/ndb/test/include/HugoTransactions.hpp +++ b/storage/ndb/test/include/HugoTransactions.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NDBT.hpp b/storage/ndb/test/include/NDBT.hpp index 144ea00871b..9b61e8e0fde 100644 --- a/storage/ndb/test/include/NDBT.hpp +++ b/storage/ndb/test/include/NDBT.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NDBT_DataSet.hpp b/storage/ndb/test/include/NDBT_DataSet.hpp index b5f91cb50c3..8500277c260 100644 --- a/storage/ndb/test/include/NDBT_DataSet.hpp +++ b/storage/ndb/test/include/NDBT_DataSet.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NDBT_DataSetTransaction.hpp b/storage/ndb/test/include/NDBT_DataSetTransaction.hpp index bf57ae85ccc..75f1162553c 100644 --- a/storage/ndb/test/include/NDBT_DataSetTransaction.hpp +++ b/storage/ndb/test/include/NDBT_DataSetTransaction.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NDBT_Error.hpp b/storage/ndb/test/include/NDBT_Error.hpp index faec0cdadfc..9ad3b247569 100644 --- a/storage/ndb/test/include/NDBT_Error.hpp +++ b/storage/ndb/test/include/NDBT_Error.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NDBT_Output.hpp b/storage/ndb/test/include/NDBT_Output.hpp index 397a3912c23..54c7cb62281 100644 --- a/storage/ndb/test/include/NDBT_Output.hpp +++ b/storage/ndb/test/include/NDBT_Output.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NDBT_ResultRow.hpp b/storage/ndb/test/include/NDBT_ResultRow.hpp index 58a36e83d33..3cb63ea4b34 100644 --- a/storage/ndb/test/include/NDBT_ResultRow.hpp +++ b/storage/ndb/test/include/NDBT_ResultRow.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NDBT_ReturnCodes.h b/storage/ndb/test/include/NDBT_ReturnCodes.h index b48fccdb12d..b54a006338c 100644 --- a/storage/ndb/test/include/NDBT_ReturnCodes.h +++ b/storage/ndb/test/include/NDBT_ReturnCodes.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NDBT_Stats.hpp b/storage/ndb/test/include/NDBT_Stats.hpp index 55785f633ec..4f0d9daf37a 100644 --- a/storage/ndb/test/include/NDBT_Stats.hpp +++ b/storage/ndb/test/include/NDBT_Stats.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NDBT_Table.hpp b/storage/ndb/test/include/NDBT_Table.hpp index 5b9c245e7a3..276544f5955 100644 --- a/storage/ndb/test/include/NDBT_Table.hpp +++ b/storage/ndb/test/include/NDBT_Table.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NDBT_Tables.hpp b/storage/ndb/test/include/NDBT_Tables.hpp index f9ae783927e..d90a1fd92c2 100644 --- a/storage/ndb/test/include/NDBT_Tables.hpp +++ b/storage/ndb/test/include/NDBT_Tables.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NDBT_Test.hpp b/storage/ndb/test/include/NDBT_Test.hpp index ad09f04e814..59c6d29aab1 100644 --- a/storage/ndb/test/include/NDBT_Test.hpp +++ b/storage/ndb/test/include/NDBT_Test.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NDBT_Thread.hpp b/storage/ndb/test/include/NDBT_Thread.hpp index 5b724991b29..e58dbf7bd5d 100644 --- a/storage/ndb/test/include/NDBT_Thread.hpp +++ b/storage/ndb/test/include/NDBT_Thread.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NdbBackup.hpp b/storage/ndb/test/include/NdbBackup.hpp index 9903fe0c6a6..ea1119b13b1 100644 --- a/storage/ndb/test/include/NdbBackup.hpp +++ b/storage/ndb/test/include/NdbBackup.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NdbConfig.hpp b/storage/ndb/test/include/NdbConfig.hpp index efd7e260ac0..278af987c0c 100644 --- a/storage/ndb/test/include/NdbConfig.hpp +++ b/storage/ndb/test/include/NdbConfig.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NdbGrep.hpp b/storage/ndb/test/include/NdbGrep.hpp index 3115ef27693..fc38c12cc2c 100644 --- a/storage/ndb/test/include/NdbGrep.hpp +++ b/storage/ndb/test/include/NdbGrep.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NdbMixRestarter.hpp b/storage/ndb/test/include/NdbMixRestarter.hpp index f4f91ad2b48..42dc1e09639 100644 --- a/storage/ndb/test/include/NdbMixRestarter.hpp +++ b/storage/ndb/test/include/NdbMixRestarter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NdbRestarter.hpp b/storage/ndb/test/include/NdbRestarter.hpp index 9780c0cd1ae..a3738c7fd18 100644 --- a/storage/ndb/test/include/NdbRestarter.hpp +++ b/storage/ndb/test/include/NdbRestarter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NdbRestarts.hpp b/storage/ndb/test/include/NdbRestarts.hpp index fdba34bcc0b..5c911c79519 100644 --- a/storage/ndb/test/include/NdbRestarts.hpp +++ b/storage/ndb/test/include/NdbRestarts.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NdbSchemaCon.hpp b/storage/ndb/test/include/NdbSchemaCon.hpp index 10df5f6be0b..abc5815f7f3 100644 --- a/storage/ndb/test/include/NdbSchemaCon.hpp +++ b/storage/ndb/test/include/NdbSchemaCon.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NdbSchemaOp.hpp b/storage/ndb/test/include/NdbSchemaOp.hpp index 6cdc0e61b66..c5753bc9190 100644 --- a/storage/ndb/test/include/NdbSchemaOp.hpp +++ b/storage/ndb/test/include/NdbSchemaOp.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NdbTest.hpp b/storage/ndb/test/include/NdbTest.hpp index 105147af7de..6e122fd2f6f 100644 --- a/storage/ndb/test/include/NdbTest.hpp +++ b/storage/ndb/test/include/NdbTest.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/NdbTimer.hpp b/storage/ndb/test/include/NdbTimer.hpp index 94a39522434..718613f63e9 100644 --- a/storage/ndb/test/include/NdbTimer.hpp +++ b/storage/ndb/test/include/NdbTimer.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/TestNdbEventOperation.hpp b/storage/ndb/test/include/TestNdbEventOperation.hpp index a25e89f704d..abb3b0b949c 100644 --- a/storage/ndb/test/include/TestNdbEventOperation.hpp +++ b/storage/ndb/test/include/TestNdbEventOperation.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/UtilTransactions.hpp b/storage/ndb/test/include/UtilTransactions.hpp index 193398c3da2..34ffe42e36f 100644 --- a/storage/ndb/test/include/UtilTransactions.hpp +++ b/storage/ndb/test/include/UtilTransactions.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/include/getarg.h b/storage/ndb/test/include/getarg.h index 64a0b9f0e14..110d808ff73 100644 --- a/storage/ndb/test/include/getarg.h +++ b/storage/ndb/test/include/getarg.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/InsertRecs.cpp b/storage/ndb/test/ndbapi/InsertRecs.cpp index 41f17da3aae..e4f6e2ab707 100644 --- a/storage/ndb/test/ndbapi/InsertRecs.cpp +++ b/storage/ndb/test/ndbapi/InsertRecs.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/Makefile.am b/storage/ndb/test/ndbapi/Makefile.am index 81bb346417f..4cc7bebd5f4 100644 --- a/storage/ndb/test/ndbapi/Makefile.am +++ b/storage/ndb/test/ndbapi/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2006 MySQL AB +# Copyright (c) 2004-2008 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/ScanFilter.hpp b/storage/ndb/test/ndbapi/ScanFilter.hpp index aa866648bf6..e387195c123 100644 --- a/storage/ndb/test/ndbapi/ScanFilter.hpp +++ b/storage/ndb/test/ndbapi/ScanFilter.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/ScanFunctions.hpp b/storage/ndb/test/ndbapi/ScanFunctions.hpp index 7cb984f4157..5888bed5b79 100644 --- a/storage/ndb/test/ndbapi/ScanFunctions.hpp +++ b/storage/ndb/test/ndbapi/ScanFunctions.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/ScanInterpretTest.hpp b/storage/ndb/test/ndbapi/ScanInterpretTest.hpp index d0c2acc621f..a08b0a08836 100644 --- a/storage/ndb/test/ndbapi/ScanInterpretTest.hpp +++ b/storage/ndb/test/ndbapi/ScanInterpretTest.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/TraceNdbApi.cpp b/storage/ndb/test/ndbapi/TraceNdbApi.cpp index 42a424c96f1..bc65bfb7139 100644 --- a/storage/ndb/test/ndbapi/TraceNdbApi.cpp +++ b/storage/ndb/test/ndbapi/TraceNdbApi.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/VerifyNdbApi.cpp b/storage/ndb/test/ndbapi/VerifyNdbApi.cpp index 89aaf2ff734..774f5db8439 100644 --- a/storage/ndb/test/ndbapi/VerifyNdbApi.cpp +++ b/storage/ndb/test/ndbapi/VerifyNdbApi.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/acid.cpp b/storage/ndb/test/ndbapi/acid.cpp index 375a3d4e412..3ea65f3df2e 100644 --- a/storage/ndb/test/ndbapi/acid.cpp +++ b/storage/ndb/test/ndbapi/acid.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/acid2.cpp b/storage/ndb/test/ndbapi/acid2.cpp index c798e1f98c8..1817bfeba89 100644 --- a/storage/ndb/test/ndbapi/acid2.cpp +++ b/storage/ndb/test/ndbapi/acid2.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp b/storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp index 644405636ba..65eb11ff8d3 100644 --- a/storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp +++ b/storage/ndb/test/ndbapi/acrt/NdbRepStress.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/adoInsertRecs.cpp b/storage/ndb/test/ndbapi/adoInsertRecs.cpp index 6e33d93fa41..70705f7f8d8 100644 --- a/storage/ndb/test/ndbapi/adoInsertRecs.cpp +++ b/storage/ndb/test/ndbapi/adoInsertRecs.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/asyncGenerator.cpp b/storage/ndb/test/ndbapi/asyncGenerator.cpp index 16dd8ae74ce..3b5bbfe0d8a 100644 --- a/storage/ndb/test/ndbapi/asyncGenerator.cpp +++ b/storage/ndb/test/ndbapi/asyncGenerator.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bank/Bank.cpp b/storage/ndb/test/ndbapi/bank/Bank.cpp index 3a6f02f4bc4..9f9ef5d0f39 100644 --- a/storage/ndb/test/ndbapi/bank/Bank.cpp +++ b/storage/ndb/test/ndbapi/bank/Bank.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bank/Bank.hpp b/storage/ndb/test/ndbapi/bank/Bank.hpp index ef6e6976092..b04c8e917e5 100644 --- a/storage/ndb/test/ndbapi/bank/Bank.hpp +++ b/storage/ndb/test/ndbapi/bank/Bank.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bank/BankLoad.cpp b/storage/ndb/test/ndbapi/bank/BankLoad.cpp index 985391c0066..3b70bcf2284 100644 --- a/storage/ndb/test/ndbapi/bank/BankLoad.cpp +++ b/storage/ndb/test/ndbapi/bank/BankLoad.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bank/Makefile.am b/storage/ndb/test/ndbapi/bank/Makefile.am index 8e6c0f23eea..414c383c0fe 100644 --- a/storage/ndb/test/ndbapi/bank/Makefile.am +++ b/storage/ndb/test/ndbapi/bank/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bank/bankCreator.cpp b/storage/ndb/test/ndbapi/bank/bankCreator.cpp index 7666facf0b9..4aacc9530b2 100644 --- a/storage/ndb/test/ndbapi/bank/bankCreator.cpp +++ b/storage/ndb/test/ndbapi/bank/bankCreator.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bank/bankMakeGL.cpp b/storage/ndb/test/ndbapi/bank/bankMakeGL.cpp index 776e4b47ff4..3bc4ca0e570 100644 --- a/storage/ndb/test/ndbapi/bank/bankMakeGL.cpp +++ b/storage/ndb/test/ndbapi/bank/bankMakeGL.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bank/bankSumAccounts.cpp b/storage/ndb/test/ndbapi/bank/bankSumAccounts.cpp index a2f7787f560..26c9e435557 100644 --- a/storage/ndb/test/ndbapi/bank/bankSumAccounts.cpp +++ b/storage/ndb/test/ndbapi/bank/bankSumAccounts.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bank/bankTimer.cpp b/storage/ndb/test/ndbapi/bank/bankTimer.cpp index 7546f56cee4..b50f9ec1761 100644 --- a/storage/ndb/test/ndbapi/bank/bankTimer.cpp +++ b/storage/ndb/test/ndbapi/bank/bankTimer.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bank/bankTransactionMaker.cpp b/storage/ndb/test/ndbapi/bank/bankTransactionMaker.cpp index 95e9c43fe5b..9415e9d6094 100644 --- a/storage/ndb/test/ndbapi/bank/bankTransactionMaker.cpp +++ b/storage/ndb/test/ndbapi/bank/bankTransactionMaker.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bank/bankValidateAllGLs.cpp b/storage/ndb/test/ndbapi/bank/bankValidateAllGLs.cpp index 8f57ea55443..36d77f4b1b3 100644 --- a/storage/ndb/test/ndbapi/bank/bankValidateAllGLs.cpp +++ b/storage/ndb/test/ndbapi/bank/bankValidateAllGLs.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bank/testBank.cpp b/storage/ndb/test/ndbapi/bank/testBank.cpp index 47a5c14e8a3..0720395830f 100644 --- a/storage/ndb/test/ndbapi/bank/testBank.cpp +++ b/storage/ndb/test/ndbapi/bank/testBank.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/asyncGenerator.cpp b/storage/ndb/test/ndbapi/bench/asyncGenerator.cpp index 2a71711f146..03bb9a625cd 100644 --- a/storage/ndb/test/ndbapi/bench/asyncGenerator.cpp +++ b/storage/ndb/test/ndbapi/bench/asyncGenerator.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/dbGenerator.h b/storage/ndb/test/ndbapi/bench/dbGenerator.h index 3e1a3e6704a..08fba6762c9 100644 --- a/storage/ndb/test/ndbapi/bench/dbGenerator.h +++ b/storage/ndb/test/ndbapi/bench/dbGenerator.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/dbPopulate.cpp b/storage/ndb/test/ndbapi/bench/dbPopulate.cpp index 89c312ab636..acb1771b591 100644 --- a/storage/ndb/test/ndbapi/bench/dbPopulate.cpp +++ b/storage/ndb/test/ndbapi/bench/dbPopulate.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/dbPopulate.h b/storage/ndb/test/ndbapi/bench/dbPopulate.h index a7220b671b1..86146dc8a9a 100644 --- a/storage/ndb/test/ndbapi/bench/dbPopulate.h +++ b/storage/ndb/test/ndbapi/bench/dbPopulate.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/macros.h b/storage/ndb/test/ndbapi/bench/macros.h index d50183d1749..b9d8825319a 100644 --- a/storage/ndb/test/ndbapi/bench/macros.h +++ b/storage/ndb/test/ndbapi/bench/macros.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/mainAsyncGenerator.cpp b/storage/ndb/test/ndbapi/bench/mainAsyncGenerator.cpp index 5e488436d9a..c9eb8d1ade3 100644 --- a/storage/ndb/test/ndbapi/bench/mainAsyncGenerator.cpp +++ b/storage/ndb/test/ndbapi/bench/mainAsyncGenerator.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/mainPopulate.cpp b/storage/ndb/test/ndbapi/bench/mainPopulate.cpp index 8189821723c..d91aa46ba4e 100644 --- a/storage/ndb/test/ndbapi/bench/mainPopulate.cpp +++ b/storage/ndb/test/ndbapi/bench/mainPopulate.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/ndb_async1.cpp b/storage/ndb/test/ndbapi/bench/ndb_async1.cpp index e532744ac93..39d016a60eb 100644 --- a/storage/ndb/test/ndbapi/bench/ndb_async1.cpp +++ b/storage/ndb/test/ndbapi/bench/ndb_async1.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/ndb_async2.cpp b/storage/ndb/test/ndbapi/bench/ndb_async2.cpp index 14422f6617b..a52d0ee3716 100644 --- a/storage/ndb/test/ndbapi/bench/ndb_async2.cpp +++ b/storage/ndb/test/ndbapi/bench/ndb_async2.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/ndb_error.hpp b/storage/ndb/test/ndbapi/bench/ndb_error.hpp index 1874213c6da..377cbd7968a 100644 --- a/storage/ndb/test/ndbapi/bench/ndb_error.hpp +++ b/storage/ndb/test/ndbapi/bench/ndb_error.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/ndb_schema.hpp b/storage/ndb/test/ndbapi/bench/ndb_schema.hpp index 6a73e6131cd..918baeb0d3c 100644 --- a/storage/ndb/test/ndbapi/bench/ndb_schema.hpp +++ b/storage/ndb/test/ndbapi/bench/ndb_schema.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/ndb_user_transaction.cpp b/storage/ndb/test/ndbapi/bench/ndb_user_transaction.cpp index 37de6dadc90..2579db35054 100644 --- a/storage/ndb/test/ndbapi/bench/ndb_user_transaction.cpp +++ b/storage/ndb/test/ndbapi/bench/ndb_user_transaction.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/ndb_user_transaction2.cpp b/storage/ndb/test/ndbapi/bench/ndb_user_transaction2.cpp index bb27bfe3600..1365b00b594 100644 --- a/storage/ndb/test/ndbapi/bench/ndb_user_transaction2.cpp +++ b/storage/ndb/test/ndbapi/bench/ndb_user_transaction2.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/ndb_user_transaction3.cpp b/storage/ndb/test/ndbapi/bench/ndb_user_transaction3.cpp index d193b21fa11..d4bc83bc370 100644 --- a/storage/ndb/test/ndbapi/bench/ndb_user_transaction3.cpp +++ b/storage/ndb/test/ndbapi/bench/ndb_user_transaction3.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/ndb_user_transaction4.cpp b/storage/ndb/test/ndbapi/bench/ndb_user_transaction4.cpp index 5df4717eb6d..8ce5a87a813 100644 --- a/storage/ndb/test/ndbapi/bench/ndb_user_transaction4.cpp +++ b/storage/ndb/test/ndbapi/bench/ndb_user_transaction4.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/ndb_user_transaction5.cpp b/storage/ndb/test/ndbapi/bench/ndb_user_transaction5.cpp index d76f6afd3f9..d55f273f891 100644 --- a/storage/ndb/test/ndbapi/bench/ndb_user_transaction5.cpp +++ b/storage/ndb/test/ndbapi/bench/ndb_user_transaction5.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/ndb_user_transaction6.cpp b/storage/ndb/test/ndbapi/bench/ndb_user_transaction6.cpp index 4f705ee5047..e60df8797f9 100644 --- a/storage/ndb/test/ndbapi/bench/ndb_user_transaction6.cpp +++ b/storage/ndb/test/ndbapi/bench/ndb_user_transaction6.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/testData.h b/storage/ndb/test/ndbapi/bench/testData.h index 0327656de73..469d46fb680 100644 --- a/storage/ndb/test/ndbapi/bench/testData.h +++ b/storage/ndb/test/ndbapi/bench/testData.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/testDefinitions.h b/storage/ndb/test/ndbapi/bench/testDefinitions.h index e2705b55a34..f217fde784d 100644 --- a/storage/ndb/test/ndbapi/bench/testDefinitions.h +++ b/storage/ndb/test/ndbapi/bench/testDefinitions.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/userInterface.cpp b/storage/ndb/test/ndbapi/bench/userInterface.cpp index 651963cb95a..91a128fb37d 100644 --- a/storage/ndb/test/ndbapi/bench/userInterface.cpp +++ b/storage/ndb/test/ndbapi/bench/userInterface.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bench/userInterface.h b/storage/ndb/test/ndbapi/bench/userInterface.h index 5492b012553..94dbcf67ba6 100644 --- a/storage/ndb/test/ndbapi/bench/userInterface.h +++ b/storage/ndb/test/ndbapi/bench/userInterface.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/benchronja.cpp b/storage/ndb/test/ndbapi/benchronja.cpp index 73ee324a888..cd067e083e3 100644 --- a/storage/ndb/test/ndbapi/benchronja.cpp +++ b/storage/ndb/test/ndbapi/benchronja.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/bulk_copy.cpp b/storage/ndb/test/ndbapi/bulk_copy.cpp index 3828a833fc6..2a9517c90f2 100644 --- a/storage/ndb/test/ndbapi/bulk_copy.cpp +++ b/storage/ndb/test/ndbapi/bulk_copy.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/cdrserver.cpp b/storage/ndb/test/ndbapi/cdrserver.cpp index 1a39edcfaec..f2168eaca06 100644 --- a/storage/ndb/test/ndbapi/cdrserver.cpp +++ b/storage/ndb/test/ndbapi/cdrserver.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/celloDb.cpp b/storage/ndb/test/ndbapi/celloDb.cpp index 243930056f7..af600ea73fa 100644 --- a/storage/ndb/test/ndbapi/celloDb.cpp +++ b/storage/ndb/test/ndbapi/celloDb.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/create_all_tabs.cpp b/storage/ndb/test/ndbapi/create_all_tabs.cpp index 1820af6fec2..f5eeebbb66c 100644 --- a/storage/ndb/test/ndbapi/create_all_tabs.cpp +++ b/storage/ndb/test/ndbapi/create_all_tabs.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/create_tab.cpp b/storage/ndb/test/ndbapi/create_tab.cpp index c8c7dd6e27f..fbbcfe2e68a 100644 --- a/storage/ndb/test/ndbapi/create_tab.cpp +++ b/storage/ndb/test/ndbapi/create_tab.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/drop_all_tabs.cpp b/storage/ndb/test/ndbapi/drop_all_tabs.cpp index cebd257cc29..26406970202 100644 --- a/storage/ndb/test/ndbapi/drop_all_tabs.cpp +++ b/storage/ndb/test/ndbapi/drop_all_tabs.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/flexAsynch.cpp b/storage/ndb/test/ndbapi/flexAsynch.cpp index 1f52315482f..48307beec2a 100644 --- a/storage/ndb/test/ndbapi/flexAsynch.cpp +++ b/storage/ndb/test/ndbapi/flexAsynch.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/flexBench.cpp b/storage/ndb/test/ndbapi/flexBench.cpp index eedc8ec3e76..5a5df2933c1 100644 --- a/storage/ndb/test/ndbapi/flexBench.cpp +++ b/storage/ndb/test/ndbapi/flexBench.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/flexHammer.cpp b/storage/ndb/test/ndbapi/flexHammer.cpp index 1b0097cf84b..7daf968688b 100644 --- a/storage/ndb/test/ndbapi/flexHammer.cpp +++ b/storage/ndb/test/ndbapi/flexHammer.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/flexScan.cpp b/storage/ndb/test/ndbapi/flexScan.cpp index 105dfeedfff..7278dbed540 100644 --- a/storage/ndb/test/ndbapi/flexScan.cpp +++ b/storage/ndb/test/ndbapi/flexScan.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/flexTT.cpp b/storage/ndb/test/ndbapi/flexTT.cpp index 4373102f77e..c6e96bc757a 100644 --- a/storage/ndb/test/ndbapi/flexTT.cpp +++ b/storage/ndb/test/ndbapi/flexTT.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/flexTimedAsynch.cpp b/storage/ndb/test/ndbapi/flexTimedAsynch.cpp index b6301e59df2..06ae9e14c1d 100644 --- a/storage/ndb/test/ndbapi/flexTimedAsynch.cpp +++ b/storage/ndb/test/ndbapi/flexTimedAsynch.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/flex_bench_mysql.cpp b/storage/ndb/test/ndbapi/flex_bench_mysql.cpp index 5d4e7ece7c7..f6fcca760b8 100644 --- a/storage/ndb/test/ndbapi/flex_bench_mysql.cpp +++ b/storage/ndb/test/ndbapi/flex_bench_mysql.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/index.cpp b/storage/ndb/test/ndbapi/index.cpp index 1326f9fee75..6dd4a33bfd6 100644 --- a/storage/ndb/test/ndbapi/index.cpp +++ b/storage/ndb/test/ndbapi/index.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/index2.cpp b/storage/ndb/test/ndbapi/index2.cpp index 8c7ea26fead..8f081be2712 100644 --- a/storage/ndb/test/ndbapi/index2.cpp +++ b/storage/ndb/test/ndbapi/index2.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/initronja.cpp b/storage/ndb/test/ndbapi/initronja.cpp index 28ffa9f211d..ca3b7ea5e10 100644 --- a/storage/ndb/test/ndbapi/initronja.cpp +++ b/storage/ndb/test/ndbapi/initronja.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/interpreterInTup.cpp b/storage/ndb/test/ndbapi/interpreterInTup.cpp index 4d4ef75f81d..83c194c31c7 100644 --- a/storage/ndb/test/ndbapi/interpreterInTup.cpp +++ b/storage/ndb/test/ndbapi/interpreterInTup.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/mainAsyncGenerator.cpp b/storage/ndb/test/ndbapi/mainAsyncGenerator.cpp index b9c623c4793..10b5ac037ff 100644 --- a/storage/ndb/test/ndbapi/mainAsyncGenerator.cpp +++ b/storage/ndb/test/ndbapi/mainAsyncGenerator.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/msa.cpp b/storage/ndb/test/ndbapi/msa.cpp index 2db694f4dbb..edbcc504772 100644 --- a/storage/ndb/test/ndbapi/msa.cpp +++ b/storage/ndb/test/ndbapi/msa.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/ndb_async1.cpp b/storage/ndb/test/ndbapi/ndb_async1.cpp index e532744ac93..399a1930dde 100644 --- a/storage/ndb/test/ndbapi/ndb_async1.cpp +++ b/storage/ndb/test/ndbapi/ndb_async1.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/ndb_async2.cpp b/storage/ndb/test/ndbapi/ndb_async2.cpp index 9aa5ef0ae87..006090100a4 100644 --- a/storage/ndb/test/ndbapi/ndb_async2.cpp +++ b/storage/ndb/test/ndbapi/ndb_async2.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/ndb_user_populate.cpp b/storage/ndb/test/ndbapi/ndb_user_populate.cpp index 9aea13932ec..d43ea291bda 100644 --- a/storage/ndb/test/ndbapi/ndb_user_populate.cpp +++ b/storage/ndb/test/ndbapi/ndb_user_populate.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/ndb_user_transaction.cpp b/storage/ndb/test/ndbapi/ndb_user_transaction.cpp index 37de6dadc90..86cf43cd518 100644 --- a/storage/ndb/test/ndbapi/ndb_user_transaction.cpp +++ b/storage/ndb/test/ndbapi/ndb_user_transaction.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/ndb_user_transaction2.cpp b/storage/ndb/test/ndbapi/ndb_user_transaction2.cpp index bb27bfe3600..d86cef5ec09 100644 --- a/storage/ndb/test/ndbapi/ndb_user_transaction2.cpp +++ b/storage/ndb/test/ndbapi/ndb_user_transaction2.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/ndb_user_transaction3.cpp b/storage/ndb/test/ndbapi/ndb_user_transaction3.cpp index d193b21fa11..c7d3b6aa86c 100644 --- a/storage/ndb/test/ndbapi/ndb_user_transaction3.cpp +++ b/storage/ndb/test/ndbapi/ndb_user_transaction3.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/ndb_user_transaction4.cpp b/storage/ndb/test/ndbapi/ndb_user_transaction4.cpp index 5df4717eb6d..6607f2041ba 100644 --- a/storage/ndb/test/ndbapi/ndb_user_transaction4.cpp +++ b/storage/ndb/test/ndbapi/ndb_user_transaction4.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/ndb_user_transaction5.cpp b/storage/ndb/test/ndbapi/ndb_user_transaction5.cpp index d76f6afd3f9..378f8f7d930 100644 --- a/storage/ndb/test/ndbapi/ndb_user_transaction5.cpp +++ b/storage/ndb/test/ndbapi/ndb_user_transaction5.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/ndb_user_transaction6.cpp b/storage/ndb/test/ndbapi/ndb_user_transaction6.cpp index 4f705ee5047..e36e9011c85 100644 --- a/storage/ndb/test/ndbapi/ndb_user_transaction6.cpp +++ b/storage/ndb/test/ndbapi/ndb_user_transaction6.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/restarter.cpp b/storage/ndb/test/ndbapi/restarter.cpp index 089f6834375..017f603496f 100644 --- a/storage/ndb/test/ndbapi/restarter.cpp +++ b/storage/ndb/test/ndbapi/restarter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/restarter2.cpp b/storage/ndb/test/ndbapi/restarter2.cpp index f14f703f29f..feaf717e3a3 100644 --- a/storage/ndb/test/ndbapi/restarter2.cpp +++ b/storage/ndb/test/ndbapi/restarter2.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/restarts.cpp b/storage/ndb/test/ndbapi/restarts.cpp index 9269953fe4a..d5184224e7f 100644 --- a/storage/ndb/test/ndbapi/restarts.cpp +++ b/storage/ndb/test/ndbapi/restarts.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/size.cpp b/storage/ndb/test/ndbapi/size.cpp index b9cf44e1a35..935bdfea2c4 100644 --- a/storage/ndb/test/ndbapi/size.cpp +++ b/storage/ndb/test/ndbapi/size.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testBackup.cpp b/storage/ndb/test/ndbapi/testBackup.cpp index 23796bf289c..7f232f8e64e 100644 --- a/storage/ndb/test/ndbapi/testBackup.cpp +++ b/storage/ndb/test/ndbapi/testBackup.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testBasic.cpp b/storage/ndb/test/ndbapi/testBasic.cpp index ac23ceaad18..07d3b0e291e 100644 --- a/storage/ndb/test/ndbapi/testBasic.cpp +++ b/storage/ndb/test/ndbapi/testBasic.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testBasicAsynch.cpp b/storage/ndb/test/ndbapi/testBasicAsynch.cpp index c7e5c187218..fb94168cf2e 100644 --- a/storage/ndb/test/ndbapi/testBasicAsynch.cpp +++ b/storage/ndb/test/ndbapi/testBasicAsynch.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testBlobs.cpp b/storage/ndb/test/ndbapi/testBlobs.cpp index d9c657a0a29..2f77f93fa7c 100644 --- a/storage/ndb/test/ndbapi/testBlobs.cpp +++ b/storage/ndb/test/ndbapi/testBlobs.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testDataBuffers.cpp b/storage/ndb/test/ndbapi/testDataBuffers.cpp index 92e97f4e6e1..3b0218ca090 100644 --- a/storage/ndb/test/ndbapi/testDataBuffers.cpp +++ b/storage/ndb/test/ndbapi/testDataBuffers.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testDeadlock.cpp b/storage/ndb/test/ndbapi/testDeadlock.cpp index 045abf66d98..72b79d46cce 100644 --- a/storage/ndb/test/ndbapi/testDeadlock.cpp +++ b/storage/ndb/test/ndbapi/testDeadlock.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testDict.cpp b/storage/ndb/test/ndbapi/testDict.cpp index ae940074067..20de97a04eb 100644 --- a/storage/ndb/test/ndbapi/testDict.cpp +++ b/storage/ndb/test/ndbapi/testDict.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testGrepVerify.cpp b/storage/ndb/test/ndbapi/testGrepVerify.cpp index 461ee249985..126978454c5 100644 --- a/storage/ndb/test/ndbapi/testGrepVerify.cpp +++ b/storage/ndb/test/ndbapi/testGrepVerify.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testIndex.cpp b/storage/ndb/test/ndbapi/testIndex.cpp index bd9ff7ac607..2b38b864de7 100644 --- a/storage/ndb/test/ndbapi/testIndex.cpp +++ b/storage/ndb/test/ndbapi/testIndex.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testIndexStat.cpp b/storage/ndb/test/ndbapi/testIndexStat.cpp index 0e15cdd80d1..83f144aae71 100644 --- a/storage/ndb/test/ndbapi/testIndexStat.cpp +++ b/storage/ndb/test/ndbapi/testIndexStat.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testInterpreter.cpp b/storage/ndb/test/ndbapi/testInterpreter.cpp index 22b810107b4..21b199bb84f 100644 --- a/storage/ndb/test/ndbapi/testInterpreter.cpp +++ b/storage/ndb/test/ndbapi/testInterpreter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testMgm.cpp b/storage/ndb/test/ndbapi/testMgm.cpp index e43972c8c29..1d645c0fcde 100644 --- a/storage/ndb/test/ndbapi/testMgm.cpp +++ b/storage/ndb/test/ndbapi/testMgm.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testNDBT.cpp b/storage/ndb/test/ndbapi/testNDBT.cpp index 9c911b9a9d9..2c3b4e9c278 100644 --- a/storage/ndb/test/ndbapi/testNDBT.cpp +++ b/storage/ndb/test/ndbapi/testNDBT.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testNdbApi.cpp b/storage/ndb/test/ndbapi/testNdbApi.cpp index c05a2417bca..88ccc4bb375 100644 --- a/storage/ndb/test/ndbapi/testNdbApi.cpp +++ b/storage/ndb/test/ndbapi/testNdbApi.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testNodeRestart.cpp b/storage/ndb/test/ndbapi/testNodeRestart.cpp index 17c81fd0a26..1cf402f3bdd 100644 --- a/storage/ndb/test/ndbapi/testNodeRestart.cpp +++ b/storage/ndb/test/ndbapi/testNodeRestart.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testOIBasic.cpp b/storage/ndb/test/ndbapi/testOIBasic.cpp index 4e1c8400768..5f27ae271fe 100644 --- a/storage/ndb/test/ndbapi/testOIBasic.cpp +++ b/storage/ndb/test/ndbapi/testOIBasic.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testOperations.cpp b/storage/ndb/test/ndbapi/testOperations.cpp index 95be2b988e1..1788d4d67e0 100644 --- a/storage/ndb/test/ndbapi/testOperations.cpp +++ b/storage/ndb/test/ndbapi/testOperations.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testOrderedIndex.cpp b/storage/ndb/test/ndbapi/testOrderedIndex.cpp index 60eaca3248b..e5703296a16 100644 --- a/storage/ndb/test/ndbapi/testOrderedIndex.cpp +++ b/storage/ndb/test/ndbapi/testOrderedIndex.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testPartitioning.cpp b/storage/ndb/test/ndbapi/testPartitioning.cpp index b141d4d2c28..aa19eef4b00 100644 --- a/storage/ndb/test/ndbapi/testPartitioning.cpp +++ b/storage/ndb/test/ndbapi/testPartitioning.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testReadPerf.cpp b/storage/ndb/test/ndbapi/testReadPerf.cpp index 17ef60c1849..347ef1d3c0c 100644 --- a/storage/ndb/test/ndbapi/testReadPerf.cpp +++ b/storage/ndb/test/ndbapi/testReadPerf.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testRestartGci.cpp b/storage/ndb/test/ndbapi/testRestartGci.cpp index 7fac47fe3fb..9f1ddfbae3b 100644 --- a/storage/ndb/test/ndbapi/testRestartGci.cpp +++ b/storage/ndb/test/ndbapi/testRestartGci.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testSRBank.cpp b/storage/ndb/test/ndbapi/testSRBank.cpp index d0dbadbda75..1eab0063a2e 100644 --- a/storage/ndb/test/ndbapi/testSRBank.cpp +++ b/storage/ndb/test/ndbapi/testSRBank.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testScan.cpp b/storage/ndb/test/ndbapi/testScan.cpp index df6dbe2e550..40ef77cd7b1 100644 --- a/storage/ndb/test/ndbapi/testScan.cpp +++ b/storage/ndb/test/ndbapi/testScan.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testScanInterpreter.cpp b/storage/ndb/test/ndbapi/testScanInterpreter.cpp index ae7859d7328..553c2aac613 100644 --- a/storage/ndb/test/ndbapi/testScanInterpreter.cpp +++ b/storage/ndb/test/ndbapi/testScanInterpreter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testScanPerf.cpp b/storage/ndb/test/ndbapi/testScanPerf.cpp index 837b96a5c96..ab843408801 100644 --- a/storage/ndb/test/ndbapi/testScanPerf.cpp +++ b/storage/ndb/test/ndbapi/testScanPerf.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testSystemRestart.cpp b/storage/ndb/test/ndbapi/testSystemRestart.cpp index 0f9100f67fa..dd3baba2b22 100644 --- a/storage/ndb/test/ndbapi/testSystemRestart.cpp +++ b/storage/ndb/test/ndbapi/testSystemRestart.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testTimeout.cpp b/storage/ndb/test/ndbapi/testTimeout.cpp index e5831ffee79..52f42daf4e2 100644 --- a/storage/ndb/test/ndbapi/testTimeout.cpp +++ b/storage/ndb/test/ndbapi/testTimeout.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/testTransactions.cpp b/storage/ndb/test/ndbapi/testTransactions.cpp index b9477ddd7dd..14bb3e735f7 100644 --- a/storage/ndb/test/ndbapi/testTransactions.cpp +++ b/storage/ndb/test/ndbapi/testTransactions.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/test_event.cpp b/storage/ndb/test/ndbapi/test_event.cpp index a7504166065..03017dae883 100644 --- a/storage/ndb/test/ndbapi/test_event.cpp +++ b/storage/ndb/test/ndbapi/test_event.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/test_event_merge.cpp b/storage/ndb/test/ndbapi/test_event_merge.cpp index d40b985adc2..e87dca36694 100644 --- a/storage/ndb/test/ndbapi/test_event_merge.cpp +++ b/storage/ndb/test/ndbapi/test_event_merge.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (c) 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbapi/userInterface.cpp b/storage/ndb/test/ndbapi/userInterface.cpp index de5509cdfb7..11aab9bccc1 100644 --- a/storage/ndb/test/ndbapi/userInterface.cpp +++ b/storage/ndb/test/ndbapi/userInterface.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/ndbnet/test.run b/storage/ndb/test/ndbnet/test.run index 195a657aeb5..e0c136f3754 100644 --- a/storage/ndb/test/ndbnet/test.run +++ b/storage/ndb/test/ndbnet/test.run @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/ndbnet/testError.run b/storage/ndb/test/ndbnet/testError.run index 6ace2cbbd20..22539004486 100644 --- a/storage/ndb/test/ndbnet/testError.run +++ b/storage/ndb/test/ndbnet/testError.run @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/ndbnet/testMNF.run b/storage/ndb/test/ndbnet/testMNF.run index 2903313f306..da438911758 100644 --- a/storage/ndb/test/ndbnet/testMNF.run +++ b/storage/ndb/test/ndbnet/testMNF.run @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/ndbnet/testNR.run b/storage/ndb/test/ndbnet/testNR.run index 5019f597b42..0c9a9d7898a 100644 --- a/storage/ndb/test/ndbnet/testNR.run +++ b/storage/ndb/test/ndbnet/testNR.run @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/ndbnet/testNR1.run b/storage/ndb/test/ndbnet/testNR1.run index a02b487b663..cb6fb48c08b 100644 --- a/storage/ndb/test/ndbnet/testNR1.run +++ b/storage/ndb/test/ndbnet/testNR1.run @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/ndbnet/testNR4.run b/storage/ndb/test/ndbnet/testNR4.run index 378d2743145..b665f6eb6af 100644 --- a/storage/ndb/test/ndbnet/testNR4.run +++ b/storage/ndb/test/ndbnet/testNR4.run @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/ndbnet/testSRhang.run b/storage/ndb/test/ndbnet/testSRhang.run index 570ed897eef..c76af0d9ba4 100644 --- a/storage/ndb/test/ndbnet/testSRhang.run +++ b/storage/ndb/test/ndbnet/testSRhang.run @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/ndbnet/testTR295.run b/storage/ndb/test/ndbnet/testTR295.run index df26000cbda..236e568bcf8 100644 --- a/storage/ndb/test/ndbnet/testTR295.run +++ b/storage/ndb/test/ndbnet/testTR295.run @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/newtonapi/basic_test/basic/basic.cpp b/storage/ndb/test/newtonapi/basic_test/basic/basic.cpp index 23c9d38cbdc..b1268a6f837 100644 --- a/storage/ndb/test/newtonapi/basic_test/basic/basic.cpp +++ b/storage/ndb/test/newtonapi/basic_test/basic/basic.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/newtonapi/basic_test/bulk_read/br_test.cpp b/storage/ndb/test/newtonapi/basic_test/bulk_read/br_test.cpp index 7b447b29e05..9dd5b5e7b03 100644 --- a/storage/ndb/test/newtonapi/basic_test/bulk_read/br_test.cpp +++ b/storage/ndb/test/newtonapi/basic_test/bulk_read/br_test.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/newtonapi/basic_test/common.cpp b/storage/ndb/test/newtonapi/basic_test/common.cpp index d393394dcc9..28ae60d2cd6 100644 --- a/storage/ndb/test/newtonapi/basic_test/common.cpp +++ b/storage/ndb/test/newtonapi/basic_test/common.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/newtonapi/basic_test/common.hpp b/storage/ndb/test/newtonapi/basic_test/common.hpp index d76d1cf1733..3cac2ee92fd 100644 --- a/storage/ndb/test/newtonapi/basic_test/common.hpp +++ b/storage/ndb/test/newtonapi/basic_test/common.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/newtonapi/basic_test/ptr_binding/ptr_binding_test.cpp b/storage/ndb/test/newtonapi/basic_test/ptr_binding/ptr_binding_test.cpp index 754dad25dba..b12071f2764 100644 --- a/storage/ndb/test/newtonapi/basic_test/ptr_binding/ptr_binding_test.cpp +++ b/storage/ndb/test/newtonapi/basic_test/ptr_binding/ptr_binding_test.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/newtonapi/basic_test/too_basic.cpp b/storage/ndb/test/newtonapi/basic_test/too_basic.cpp index f751967c181..74a3845cae8 100644 --- a/storage/ndb/test/newtonapi/basic_test/too_basic.cpp +++ b/storage/ndb/test/newtonapi/basic_test/too_basic.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/newtonapi/perf_test/perf.cpp b/storage/ndb/test/newtonapi/perf_test/perf.cpp index 23484dbdac2..229af493254 100644 --- a/storage/ndb/test/newtonapi/perf_test/perf.cpp +++ b/storage/ndb/test/newtonapi/perf_test/perf.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/SQL99_test/SQL99_test.cpp b/storage/ndb/test/odbc/SQL99_test/SQL99_test.cpp index fb77220773d..f3aafc7ead1 100644 --- a/storage/ndb/test/odbc/SQL99_test/SQL99_test.cpp +++ b/storage/ndb/test/odbc/SQL99_test/SQL99_test.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/SQL99_test/SQL99_test.h b/storage/ndb/test/odbc/SQL99_test/SQL99_test.h index 0af4e79be47..768ccd5ef56 100644 --- a/storage/ndb/test/odbc/SQL99_test/SQL99_test.h +++ b/storage/ndb/test/odbc/SQL99_test/SQL99_test.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE.cpp b/storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE.cpp index 4f5f8455349..eada867d355 100644 --- a/storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE.cpp +++ b/storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE_HDBC.cpp b/storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE_HDBC.cpp index 7154409efa5..30e72b34f1f 100644 --- a/storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE_HDBC.cpp +++ b/storage/ndb/test/odbc/client/NDBT_ALLOCHANDLE_HDBC.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/NDBT_SQLConnect.cpp b/storage/ndb/test/odbc/client/NDBT_SQLConnect.cpp index 11522d7cf5a..79ef3db1329 100644 --- a/storage/ndb/test/odbc/client/NDBT_SQLConnect.cpp +++ b/storage/ndb/test/odbc/client/NDBT_SQLConnect.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/NDBT_SQLPrepare.cpp b/storage/ndb/test/odbc/client/NDBT_SQLPrepare.cpp index ce4300caf75..36be44b147a 100644 --- a/storage/ndb/test/odbc/client/NDBT_SQLPrepare.cpp +++ b/storage/ndb/test/odbc/client/NDBT_SQLPrepare.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLAllocEnvTest.cpp b/storage/ndb/test/odbc/client/SQLAllocEnvTest.cpp index e44672b2dbc..a5e3abc2f80 100644 --- a/storage/ndb/test/odbc/client/SQLAllocEnvTest.cpp +++ b/storage/ndb/test/odbc/client/SQLAllocEnvTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLAllocHandleTest.cpp b/storage/ndb/test/odbc/client/SQLAllocHandleTest.cpp index b66f7ebc2f6..7b657dcfa44 100644 --- a/storage/ndb/test/odbc/client/SQLAllocHandleTest.cpp +++ b/storage/ndb/test/odbc/client/SQLAllocHandleTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLAllocHandleTest_bf.cpp b/storage/ndb/test/odbc/client/SQLAllocHandleTest_bf.cpp index fc9a9d504ba..c26fb63d8f1 100644 --- a/storage/ndb/test/odbc/client/SQLAllocHandleTest_bf.cpp +++ b/storage/ndb/test/odbc/client/SQLAllocHandleTest_bf.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLBindColTest.cpp b/storage/ndb/test/odbc/client/SQLBindColTest.cpp index aa6effe1831..ced99a1ca4f 100644 --- a/storage/ndb/test/odbc/client/SQLBindColTest.cpp +++ b/storage/ndb/test/odbc/client/SQLBindColTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLBindParameterTest.cpp b/storage/ndb/test/odbc/client/SQLBindParameterTest.cpp index 913c1d82230..2bdef1eb0ec 100644 --- a/storage/ndb/test/odbc/client/SQLBindParameterTest.cpp +++ b/storage/ndb/test/odbc/client/SQLBindParameterTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLCancelTest.cpp b/storage/ndb/test/odbc/client/SQLCancelTest.cpp index 355dc4f3189..b4749cc1334 100644 --- a/storage/ndb/test/odbc/client/SQLCancelTest.cpp +++ b/storage/ndb/test/odbc/client/SQLCancelTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLCloseCursorTest.cpp b/storage/ndb/test/odbc/client/SQLCloseCursorTest.cpp index e6a630319d5..186d770526f 100644 --- a/storage/ndb/test/odbc/client/SQLCloseCursorTest.cpp +++ b/storage/ndb/test/odbc/client/SQLCloseCursorTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLColAttributeTest.cpp b/storage/ndb/test/odbc/client/SQLColAttributeTest.cpp index ade640173fe..52c6983d9e5 100644 --- a/storage/ndb/test/odbc/client/SQLColAttributeTest.cpp +++ b/storage/ndb/test/odbc/client/SQLColAttributeTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLColAttributeTest1.cpp b/storage/ndb/test/odbc/client/SQLColAttributeTest1.cpp index 45b1dd15967..818ca90ced0 100644 --- a/storage/ndb/test/odbc/client/SQLColAttributeTest1.cpp +++ b/storage/ndb/test/odbc/client/SQLColAttributeTest1.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLColAttributeTest2.cpp b/storage/ndb/test/odbc/client/SQLColAttributeTest2.cpp index fb1f2a9aa4a..ae251e7e63d 100644 --- a/storage/ndb/test/odbc/client/SQLColAttributeTest2.cpp +++ b/storage/ndb/test/odbc/client/SQLColAttributeTest2.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLColAttributeTest3.cpp b/storage/ndb/test/odbc/client/SQLColAttributeTest3.cpp index ef4943a8cdb..44be0c87081 100644 --- a/storage/ndb/test/odbc/client/SQLColAttributeTest3.cpp +++ b/storage/ndb/test/odbc/client/SQLColAttributeTest3.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLConnectTest.cpp b/storage/ndb/test/odbc/client/SQLConnectTest.cpp index 1adbd865f0c..372e08b3a98 100644 --- a/storage/ndb/test/odbc/client/SQLConnectTest.cpp +++ b/storage/ndb/test/odbc/client/SQLConnectTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLCopyDescTest.cpp b/storage/ndb/test/odbc/client/SQLCopyDescTest.cpp index d944da5acbb..4fe5e4c590a 100644 --- a/storage/ndb/test/odbc/client/SQLCopyDescTest.cpp +++ b/storage/ndb/test/odbc/client/SQLCopyDescTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLDescribeColTest.cpp b/storage/ndb/test/odbc/client/SQLDescribeColTest.cpp index abb31b53c5b..5ca8b3f1485 100644 --- a/storage/ndb/test/odbc/client/SQLDescribeColTest.cpp +++ b/storage/ndb/test/odbc/client/SQLDescribeColTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLDisconnectTest.cpp b/storage/ndb/test/odbc/client/SQLDisconnectTest.cpp index 700fadfed33..4fe5bf6ee22 100644 --- a/storage/ndb/test/odbc/client/SQLDisconnectTest.cpp +++ b/storage/ndb/test/odbc/client/SQLDisconnectTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLDriverConnectTest.cpp b/storage/ndb/test/odbc/client/SQLDriverConnectTest.cpp index 376b0970f2e..9077ce4d305 100644 --- a/storage/ndb/test/odbc/client/SQLDriverConnectTest.cpp +++ b/storage/ndb/test/odbc/client/SQLDriverConnectTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLEndTranTest.cpp b/storage/ndb/test/odbc/client/SQLEndTranTest.cpp index 953336ec909..a40c967ad59 100644 --- a/storage/ndb/test/odbc/client/SQLEndTranTest.cpp +++ b/storage/ndb/test/odbc/client/SQLEndTranTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLErrorTest.cpp b/storage/ndb/test/odbc/client/SQLErrorTest.cpp index f4effa464c8..5f0f06fee2e 100644 --- a/storage/ndb/test/odbc/client/SQLErrorTest.cpp +++ b/storage/ndb/test/odbc/client/SQLErrorTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLExecDirectTest.cpp b/storage/ndb/test/odbc/client/SQLExecDirectTest.cpp index d0b7955f928..69ab1f06b32 100644 --- a/storage/ndb/test/odbc/client/SQLExecDirectTest.cpp +++ b/storage/ndb/test/odbc/client/SQLExecDirectTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLExecuteTest.cpp b/storage/ndb/test/odbc/client/SQLExecuteTest.cpp index bcff66ff287..859612116ea 100644 --- a/storage/ndb/test/odbc/client/SQLExecuteTest.cpp +++ b/storage/ndb/test/odbc/client/SQLExecuteTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLFetchScrollTest.cpp b/storage/ndb/test/odbc/client/SQLFetchScrollTest.cpp index 1a92ac058a8..6923b28216c 100644 --- a/storage/ndb/test/odbc/client/SQLFetchScrollTest.cpp +++ b/storage/ndb/test/odbc/client/SQLFetchScrollTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLFetchTest.cpp b/storage/ndb/test/odbc/client/SQLFetchTest.cpp index 0dcb3571bf7..58331645cbd 100644 --- a/storage/ndb/test/odbc/client/SQLFetchTest.cpp +++ b/storage/ndb/test/odbc/client/SQLFetchTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLFreeHandleTest.cpp b/storage/ndb/test/odbc/client/SQLFreeHandleTest.cpp index d8ab766a362..a106be11785 100644 --- a/storage/ndb/test/odbc/client/SQLFreeHandleTest.cpp +++ b/storage/ndb/test/odbc/client/SQLFreeHandleTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLFreeStmtTest.cpp b/storage/ndb/test/odbc/client/SQLFreeStmtTest.cpp index ce804283358..5d7829b4939 100644 --- a/storage/ndb/test/odbc/client/SQLFreeStmtTest.cpp +++ b/storage/ndb/test/odbc/client/SQLFreeStmtTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLGetConnectAttrTest.cpp b/storage/ndb/test/odbc/client/SQLGetConnectAttrTest.cpp index 7eb6432904e..aca8dab7be2 100644 --- a/storage/ndb/test/odbc/client/SQLGetConnectAttrTest.cpp +++ b/storage/ndb/test/odbc/client/SQLGetConnectAttrTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLGetCursorNameTest.cpp b/storage/ndb/test/odbc/client/SQLGetCursorNameTest.cpp index da66d976f34..9eb864d3874 100644 --- a/storage/ndb/test/odbc/client/SQLGetCursorNameTest.cpp +++ b/storage/ndb/test/odbc/client/SQLGetCursorNameTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLGetDataTest.cpp b/storage/ndb/test/odbc/client/SQLGetDataTest.cpp index 12b7969c092..b921b4ca4c2 100644 --- a/storage/ndb/test/odbc/client/SQLGetDataTest.cpp +++ b/storage/ndb/test/odbc/client/SQLGetDataTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLGetDescFieldTest.cpp b/storage/ndb/test/odbc/client/SQLGetDescFieldTest.cpp index 0bae4ae58b2..a20aa7f3dc7 100644 --- a/storage/ndb/test/odbc/client/SQLGetDescFieldTest.cpp +++ b/storage/ndb/test/odbc/client/SQLGetDescFieldTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLGetDescRecTest.cpp b/storage/ndb/test/odbc/client/SQLGetDescRecTest.cpp index 46ecbfeaa83..d11340ccfaa 100644 --- a/storage/ndb/test/odbc/client/SQLGetDescRecTest.cpp +++ b/storage/ndb/test/odbc/client/SQLGetDescRecTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLGetDiagFieldTest.cpp b/storage/ndb/test/odbc/client/SQLGetDiagFieldTest.cpp index c8d381abd56..c42449685a3 100644 --- a/storage/ndb/test/odbc/client/SQLGetDiagFieldTest.cpp +++ b/storage/ndb/test/odbc/client/SQLGetDiagFieldTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp b/storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp index 22a4e07f470..d0e228cf1b9 100644 --- a/storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp +++ b/storage/ndb/test/odbc/client/SQLGetDiagRecSimpleTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLGetDiagRecTest.cpp b/storage/ndb/test/odbc/client/SQLGetDiagRecTest.cpp index 2a8aed12a57..6e588ae9f32 100644 --- a/storage/ndb/test/odbc/client/SQLGetDiagRecTest.cpp +++ b/storage/ndb/test/odbc/client/SQLGetDiagRecTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLGetEnvAttrTest.cpp b/storage/ndb/test/odbc/client/SQLGetEnvAttrTest.cpp index 0c6b2ab51b8..b6b94ed3a71 100644 --- a/storage/ndb/test/odbc/client/SQLGetEnvAttrTest.cpp +++ b/storage/ndb/test/odbc/client/SQLGetEnvAttrTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLGetFunctionsTest.cpp b/storage/ndb/test/odbc/client/SQLGetFunctionsTest.cpp index 917f63d7e18..8aa36108257 100644 --- a/storage/ndb/test/odbc/client/SQLGetFunctionsTest.cpp +++ b/storage/ndb/test/odbc/client/SQLGetFunctionsTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLGetInfoTest.cpp b/storage/ndb/test/odbc/client/SQLGetInfoTest.cpp index 0322cc47250..17e728c5f4c 100644 --- a/storage/ndb/test/odbc/client/SQLGetInfoTest.cpp +++ b/storage/ndb/test/odbc/client/SQLGetInfoTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLGetStmtAttrTest.cpp b/storage/ndb/test/odbc/client/SQLGetStmtAttrTest.cpp index 4a268ce99c1..156ab84ecb4 100644 --- a/storage/ndb/test/odbc/client/SQLGetStmtAttrTest.cpp +++ b/storage/ndb/test/odbc/client/SQLGetStmtAttrTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLGetTypeInfoTest.cpp b/storage/ndb/test/odbc/client/SQLGetTypeInfoTest.cpp index fb114d06c26..bbffc95638d 100644 --- a/storage/ndb/test/odbc/client/SQLGetTypeInfoTest.cpp +++ b/storage/ndb/test/odbc/client/SQLGetTypeInfoTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLMoreResultsTest.cpp b/storage/ndb/test/odbc/client/SQLMoreResultsTest.cpp index 8b7ed0e4581..4fa6f3d4e95 100644 --- a/storage/ndb/test/odbc/client/SQLMoreResultsTest.cpp +++ b/storage/ndb/test/odbc/client/SQLMoreResultsTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLNumResultColsTest.cpp b/storage/ndb/test/odbc/client/SQLNumResultColsTest.cpp index ca70d42018e..760d2fadbcf 100644 --- a/storage/ndb/test/odbc/client/SQLNumResultColsTest.cpp +++ b/storage/ndb/test/odbc/client/SQLNumResultColsTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLParamDataTest.cpp b/storage/ndb/test/odbc/client/SQLParamDataTest.cpp index e502a9e15fa..8a7576a17a1 100644 --- a/storage/ndb/test/odbc/client/SQLParamDataTest.cpp +++ b/storage/ndb/test/odbc/client/SQLParamDataTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLPrepareTest.cpp b/storage/ndb/test/odbc/client/SQLPrepareTest.cpp index aa20b1992a2..6b6dd68e12b 100644 --- a/storage/ndb/test/odbc/client/SQLPrepareTest.cpp +++ b/storage/ndb/test/odbc/client/SQLPrepareTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLPutDataTest.cpp b/storage/ndb/test/odbc/client/SQLPutDataTest.cpp index ea1a34651c3..23520eec9d2 100644 --- a/storage/ndb/test/odbc/client/SQLPutDataTest.cpp +++ b/storage/ndb/test/odbc/client/SQLPutDataTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLRowCountTest.cpp b/storage/ndb/test/odbc/client/SQLRowCountTest.cpp index 1cc2929c2dc..3134288443d 100644 --- a/storage/ndb/test/odbc/client/SQLRowCountTest.cpp +++ b/storage/ndb/test/odbc/client/SQLRowCountTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLSetConnectAttrTest.cpp b/storage/ndb/test/odbc/client/SQLSetConnectAttrTest.cpp index 4e5f08a4a4c..1259c95c368 100644 --- a/storage/ndb/test/odbc/client/SQLSetConnectAttrTest.cpp +++ b/storage/ndb/test/odbc/client/SQLSetConnectAttrTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLSetCursorNameTest.cpp b/storage/ndb/test/odbc/client/SQLSetCursorNameTest.cpp index 8676ab6eddf..62ebb6ed954 100644 --- a/storage/ndb/test/odbc/client/SQLSetCursorNameTest.cpp +++ b/storage/ndb/test/odbc/client/SQLSetCursorNameTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLSetDescFieldTest.cpp b/storage/ndb/test/odbc/client/SQLSetDescFieldTest.cpp index 9ea93013312..eae63a2c67f 100644 --- a/storage/ndb/test/odbc/client/SQLSetDescFieldTest.cpp +++ b/storage/ndb/test/odbc/client/SQLSetDescFieldTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLSetDescRecTest.cpp b/storage/ndb/test/odbc/client/SQLSetDescRecTest.cpp index 52a6b81ee84..605401314d1 100644 --- a/storage/ndb/test/odbc/client/SQLSetDescRecTest.cpp +++ b/storage/ndb/test/odbc/client/SQLSetDescRecTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLSetEnvAttrTest.cpp b/storage/ndb/test/odbc/client/SQLSetEnvAttrTest.cpp index e843c5509b8..546465bbd39 100644 --- a/storage/ndb/test/odbc/client/SQLSetEnvAttrTest.cpp +++ b/storage/ndb/test/odbc/client/SQLSetEnvAttrTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLSetStmtAttrTest.cpp b/storage/ndb/test/odbc/client/SQLSetStmtAttrTest.cpp index dc37fc64e1c..5d7bba5e75f 100644 --- a/storage/ndb/test/odbc/client/SQLSetStmtAttrTest.cpp +++ b/storage/ndb/test/odbc/client/SQLSetStmtAttrTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLTablesTest.cpp b/storage/ndb/test/odbc/client/SQLTablesTest.cpp index ff55f217d0a..39944412e5d 100644 --- a/storage/ndb/test/odbc/client/SQLTablesTest.cpp +++ b/storage/ndb/test/odbc/client/SQLTablesTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/SQLTransactTest.cpp b/storage/ndb/test/odbc/client/SQLTransactTest.cpp index d7444794d5a..cd7cbb3491b 100644 --- a/storage/ndb/test/odbc/client/SQLTransactTest.cpp +++ b/storage/ndb/test/odbc/client/SQLTransactTest.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/common.hpp b/storage/ndb/test/odbc/client/common.hpp index 1eb61f44bd9..7e775f83120 100644 --- a/storage/ndb/test/odbc/client/common.hpp +++ b/storage/ndb/test/odbc/client/common.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/client/main.cpp b/storage/ndb/test/odbc/client/main.cpp index 187ac96c6a7..53f89b196e7 100644 --- a/storage/ndb/test/odbc/client/main.cpp +++ b/storage/ndb/test/odbc/client/main.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/driver/testOdbcDriver.cpp b/storage/ndb/test/odbc/driver/testOdbcDriver.cpp index bdda4d447f8..566e71b1a10 100644 --- a/storage/ndb/test/odbc/driver/testOdbcDriver.cpp +++ b/storage/ndb/test/odbc/driver/testOdbcDriver.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/odbc/test_compiler/test_compiler.cpp b/storage/ndb/test/odbc/test_compiler/test_compiler.cpp index d64d8f2a63d..61cbada926a 100644 --- a/storage/ndb/test/odbc/test_compiler/test_compiler.cpp +++ b/storage/ndb/test/odbc/test_compiler/test_compiler.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/run-test/atrt-analyze-result.sh b/storage/ndb/test/run-test/atrt-analyze-result.sh index 9a482faee86..cdfb20ad04a 100755 --- a/storage/ndb/test/run-test/atrt-analyze-result.sh +++ b/storage/ndb/test/run-test/atrt-analyze-result.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/run-test/atrt-clear-result.sh b/storage/ndb/test/run-test/atrt-clear-result.sh index 7eeb54daef3..81a239a4449 100755 --- a/storage/ndb/test/run-test/atrt-clear-result.sh +++ b/storage/ndb/test/run-test/atrt-clear-result.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/run-test/atrt-gather-result.sh b/storage/ndb/test/run-test/atrt-gather-result.sh index 36989d04c07..c064d8cbee6 100755 --- a/storage/ndb/test/run-test/atrt-gather-result.sh +++ b/storage/ndb/test/run-test/atrt-gather-result.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005, 2007 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/run-test/atrt-setup.sh b/storage/ndb/test/run-test/atrt-setup.sh index 786b1d812de..a2784bee862 100755 --- a/storage/ndb/test/run-test/atrt-setup.sh +++ b/storage/ndb/test/run-test/atrt-setup.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/run-test/atrt-testBackup b/storage/ndb/test/run-test/atrt-testBackup index 2ed6f70b7aa..040c0e22aeb 100755 --- a/storage/ndb/test/run-test/atrt-testBackup +++ b/storage/ndb/test/run-test/atrt-testBackup @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/run-test/atrt.hpp b/storage/ndb/test/run-test/atrt.hpp index 39f7e1a7bf2..9e75d9bf96e 100644 --- a/storage/ndb/test/run-test/atrt.hpp +++ b/storage/ndb/test/run-test/atrt.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2003-2007 MySQL AB, 2008 Sun Microsystems, Inc. +/* Copyright (c) 2003-2005, 2007 MySQL AB, 2008 Sun Microsystems, Inc. Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/storage/ndb/test/run-test/daily-devel-tests.txt b/storage/ndb/test/run-test/daily-devel-tests.txt index dc17e31de6a..1fe9b0d502e 100644 --- a/storage/ndb/test/run-test/daily-devel-tests.txt +++ b/storage/ndb/test/run-test/daily-devel-tests.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2004, 2005 MySQL AB +# Copyright (c) 2004-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/run-test/main.cpp b/storage/ndb/test/run-test/main.cpp index b5c4385f5d3..0ace5b96472 100644 --- a/storage/ndb/test/run-test/main.cpp +++ b/storage/ndb/test/run-test/main.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/run-test/make-index.sh b/storage/ndb/test/run-test/make-index.sh index f13ac098567..98db29b8c40 100755 --- a/storage/ndb/test/run-test/make-index.sh +++ b/storage/ndb/test/run-test/make-index.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/storage/ndb/test/src/CpcClient.cpp b/storage/ndb/test/src/CpcClient.cpp index d5dfd01327e..300808e967f 100644 --- a/storage/ndb/test/src/CpcClient.cpp +++ b/storage/ndb/test/src/CpcClient.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/DbUtil.cpp b/storage/ndb/test/src/DbUtil.cpp index a52f45b46a7..f42bf781883 100755 --- a/storage/ndb/test/src/DbUtil.cpp +++ b/storage/ndb/test/src/DbUtil.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2008 MySQL AB +/* Copyright (c) 2007, 2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/HugoAsynchTransactions.cpp b/storage/ndb/test/src/HugoAsynchTransactions.cpp index 0a5991d9e20..11df6b36a19 100644 --- a/storage/ndb/test/src/HugoAsynchTransactions.cpp +++ b/storage/ndb/test/src/HugoAsynchTransactions.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/HugoCalculator.cpp b/storage/ndb/test/src/HugoCalculator.cpp index 1589d4a9eb0..e37c93b5c04 100644 --- a/storage/ndb/test/src/HugoCalculator.cpp +++ b/storage/ndb/test/src/HugoCalculator.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/HugoOperations.cpp b/storage/ndb/test/src/HugoOperations.cpp index 93a9eaf435a..067389de4c3 100644 --- a/storage/ndb/test/src/HugoOperations.cpp +++ b/storage/ndb/test/src/HugoOperations.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/HugoTransactions.cpp b/storage/ndb/test/src/HugoTransactions.cpp index 0e5f7cd8115..878ba08978e 100644 --- a/storage/ndb/test/src/HugoTransactions.cpp +++ b/storage/ndb/test/src/HugoTransactions.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/Makefile.am b/storage/ndb/test/src/Makefile.am index 1e4f30c3f39..1e9d0585c10 100644 --- a/storage/ndb/test/src/Makefile.am +++ b/storage/ndb/test/src/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004-2008 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NDBT_Error.cpp b/storage/ndb/test/src/NDBT_Error.cpp index c291a81a0df..afeedc1fb8c 100644 --- a/storage/ndb/test/src/NDBT_Error.cpp +++ b/storage/ndb/test/src/NDBT_Error.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NDBT_Output.cpp b/storage/ndb/test/src/NDBT_Output.cpp index e08a3d996eb..c625ed1bade 100644 --- a/storage/ndb/test/src/NDBT_Output.cpp +++ b/storage/ndb/test/src/NDBT_Output.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NDBT_ResultRow.cpp b/storage/ndb/test/src/NDBT_ResultRow.cpp index cdd7c65e7aa..a14950010f8 100644 --- a/storage/ndb/test/src/NDBT_ResultRow.cpp +++ b/storage/ndb/test/src/NDBT_ResultRow.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NDBT_ReturnCodes.cpp b/storage/ndb/test/src/NDBT_ReturnCodes.cpp index 5cd5eed3af7..857bc6d5ffc 100644 --- a/storage/ndb/test/src/NDBT_ReturnCodes.cpp +++ b/storage/ndb/test/src/NDBT_ReturnCodes.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NDBT_Table.cpp b/storage/ndb/test/src/NDBT_Table.cpp index 1787bef9aba..61d5df8b88b 100644 --- a/storage/ndb/test/src/NDBT_Table.cpp +++ b/storage/ndb/test/src/NDBT_Table.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NDBT_Tables.cpp b/storage/ndb/test/src/NDBT_Tables.cpp index 9c94dcc18d1..389d03a703e 100644 --- a/storage/ndb/test/src/NDBT_Tables.cpp +++ b/storage/ndb/test/src/NDBT_Tables.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NDBT_Test.cpp b/storage/ndb/test/src/NDBT_Test.cpp index 69f3723ca75..6e356d88aff 100644 --- a/storage/ndb/test/src/NDBT_Test.cpp +++ b/storage/ndb/test/src/NDBT_Test.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NDBT_Thread.cpp b/storage/ndb/test/src/NDBT_Thread.cpp index ff6785724ba..2bc53ca167f 100644 --- a/storage/ndb/test/src/NDBT_Thread.cpp +++ b/storage/ndb/test/src/NDBT_Thread.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NdbBackup.cpp b/storage/ndb/test/src/NdbBackup.cpp index 3fb4de461f0..73f3bffa7db 100644 --- a/storage/ndb/test/src/NdbBackup.cpp +++ b/storage/ndb/test/src/NdbBackup.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NdbConfig.cpp b/storage/ndb/test/src/NdbConfig.cpp index ecb2030e63c..fd40a8b6384 100644 --- a/storage/ndb/test/src/NdbConfig.cpp +++ b/storage/ndb/test/src/NdbConfig.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NdbGrep.cpp b/storage/ndb/test/src/NdbGrep.cpp index 99bcede63c8..9ff5c113963 100644 --- a/storage/ndb/test/src/NdbGrep.cpp +++ b/storage/ndb/test/src/NdbGrep.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NdbMixRestarter.cpp b/storage/ndb/test/src/NdbMixRestarter.cpp index 81631afaa1a..6e2afeb0752 100644 --- a/storage/ndb/test/src/NdbMixRestarter.cpp +++ b/storage/ndb/test/src/NdbMixRestarter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NdbRestarter.cpp b/storage/ndb/test/src/NdbRestarter.cpp index 1acd28dab23..cfc320344fb 100644 --- a/storage/ndb/test/src/NdbRestarter.cpp +++ b/storage/ndb/test/src/NdbRestarter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NdbRestarts.cpp b/storage/ndb/test/src/NdbRestarts.cpp index 86e71f4b3fc..1a6ed421dfc 100644 --- a/storage/ndb/test/src/NdbRestarts.cpp +++ b/storage/ndb/test/src/NdbRestarts.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NdbSchemaCon.cpp b/storage/ndb/test/src/NdbSchemaCon.cpp index 1e1b4028fc1..4404eac6f91 100644 --- a/storage/ndb/test/src/NdbSchemaCon.cpp +++ b/storage/ndb/test/src/NdbSchemaCon.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/NdbSchemaOp.cpp b/storage/ndb/test/src/NdbSchemaOp.cpp index 9e19426c615..9b254e4b518 100644 --- a/storage/ndb/test/src/NdbSchemaOp.cpp +++ b/storage/ndb/test/src/NdbSchemaOp.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/src/UtilTransactions.cpp b/storage/ndb/test/src/UtilTransactions.cpp index 776ffd176b3..8b5a1decbf8 100644 --- a/storage/ndb/test/src/UtilTransactions.cpp +++ b/storage/ndb/test/src/UtilTransactions.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/Makefile.am b/storage/ndb/test/tools/Makefile.am index da715caa1cb..a78a8d61bad 100644 --- a/storage/ndb/test/tools/Makefile.am +++ b/storage/ndb/test/tools/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2005 MySQL AB +# Copyright (c) 2004-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/copy_tab.cpp b/storage/ndb/test/tools/copy_tab.cpp index 3a511995f48..28ee6a0efdf 100644 --- a/storage/ndb/test/tools/copy_tab.cpp +++ b/storage/ndb/test/tools/copy_tab.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/cpcc.cpp b/storage/ndb/test/tools/cpcc.cpp index f26f0ec4cd9..fe9dfc484ed 100644 --- a/storage/ndb/test/tools/cpcc.cpp +++ b/storage/ndb/test/tools/cpcc.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/create_index.cpp b/storage/ndb/test/tools/create_index.cpp index 450d88124e7..ed71654c7d6 100644 --- a/storage/ndb/test/tools/create_index.cpp +++ b/storage/ndb/test/tools/create_index.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/hugoCalculator.cpp b/storage/ndb/test/tools/hugoCalculator.cpp index eedd8cd6e46..f40235317a6 100644 --- a/storage/ndb/test/tools/hugoCalculator.cpp +++ b/storage/ndb/test/tools/hugoCalculator.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/hugoFill.cpp b/storage/ndb/test/tools/hugoFill.cpp index 20ceb61b066..ce5ebdad23b 100644 --- a/storage/ndb/test/tools/hugoFill.cpp +++ b/storage/ndb/test/tools/hugoFill.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/hugoLoad.cpp b/storage/ndb/test/tools/hugoLoad.cpp index ae21869a305..ea4620ec620 100644 --- a/storage/ndb/test/tools/hugoLoad.cpp +++ b/storage/ndb/test/tools/hugoLoad.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/hugoLockRecords.cpp b/storage/ndb/test/tools/hugoLockRecords.cpp index ddc77061446..d7e0620b101 100644 --- a/storage/ndb/test/tools/hugoLockRecords.cpp +++ b/storage/ndb/test/tools/hugoLockRecords.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/hugoPkDelete.cpp b/storage/ndb/test/tools/hugoPkDelete.cpp index aa8e6c654a7..f8cadc9ba9c 100644 --- a/storage/ndb/test/tools/hugoPkDelete.cpp +++ b/storage/ndb/test/tools/hugoPkDelete.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/hugoPkRead.cpp b/storage/ndb/test/tools/hugoPkRead.cpp index 232f55b35b8..956dff90533 100644 --- a/storage/ndb/test/tools/hugoPkRead.cpp +++ b/storage/ndb/test/tools/hugoPkRead.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/hugoPkReadRecord.cpp b/storage/ndb/test/tools/hugoPkReadRecord.cpp index 32cd732d317..aab9ba5bfea 100644 --- a/storage/ndb/test/tools/hugoPkReadRecord.cpp +++ b/storage/ndb/test/tools/hugoPkReadRecord.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/hugoPkUpdate.cpp b/storage/ndb/test/tools/hugoPkUpdate.cpp index 3fa87da3145..69ea15eae4b 100644 --- a/storage/ndb/test/tools/hugoPkUpdate.cpp +++ b/storage/ndb/test/tools/hugoPkUpdate.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/hugoScanRead.cpp b/storage/ndb/test/tools/hugoScanRead.cpp index aa3ecf46e5a..a8dd2838eca 100644 --- a/storage/ndb/test/tools/hugoScanRead.cpp +++ b/storage/ndb/test/tools/hugoScanRead.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/hugoScanUpdate.cpp b/storage/ndb/test/tools/hugoScanUpdate.cpp index 05c1b7292ac..c61183b9341 100644 --- a/storage/ndb/test/tools/hugoScanUpdate.cpp +++ b/storage/ndb/test/tools/hugoScanUpdate.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/listen.cpp b/storage/ndb/test/tools/listen.cpp index e51b213195b..b67cd4f378e 100644 --- a/storage/ndb/test/tools/listen.cpp +++ b/storage/ndb/test/tools/listen.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/rep_latency.cpp b/storage/ndb/test/tools/rep_latency.cpp index 5ca9a1a1190..b10296c977a 100644 --- a/storage/ndb/test/tools/rep_latency.cpp +++ b/storage/ndb/test/tools/rep_latency.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/restart.cpp b/storage/ndb/test/tools/restart.cpp index 6fb16ef1d34..6e1176cc48c 100644 --- a/storage/ndb/test/tools/restart.cpp +++ b/storage/ndb/test/tools/restart.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/transproxy.cpp b/storage/ndb/test/tools/transproxy.cpp index b6aa3d2f313..be85483bcc1 100644 --- a/storage/ndb/test/tools/transproxy.cpp +++ b/storage/ndb/test/tools/transproxy.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/test/tools/verify_index.cpp b/storage/ndb/test/tools/verify_index.cpp index 567f029aa06..9fe43a28cdf 100644 --- a/storage/ndb/test/tools/verify_index.cpp +++ b/storage/ndb/test/tools/verify_index.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/Makefile.am b/storage/ndb/tools/Makefile.am index de0f36963bf..be2c82b0c52 100644 --- a/storage/ndb/tools/Makefile.am +++ b/storage/ndb/tools/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2006 MySQL AB +# Copyright (c) 2004-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/clean-links.sh b/storage/ndb/tools/clean-links.sh index 84052a619d0..3489f30d77d 100755 --- a/storage/ndb/tools/clean-links.sh +++ b/storage/ndb/tools/clean-links.sh @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/delete_all.cpp b/storage/ndb/tools/delete_all.cpp index 1bf89f5a32f..2c2fe0c184e 100644 --- a/storage/ndb/tools/delete_all.cpp +++ b/storage/ndb/tools/delete_all.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/desc.cpp b/storage/ndb/tools/desc.cpp index 831005139de..e99c4c0ef8c 100644 --- a/storage/ndb/tools/desc.cpp +++ b/storage/ndb/tools/desc.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/drop_index.cpp b/storage/ndb/tools/drop_index.cpp index ec88f331a80..6312a893b2b 100644 --- a/storage/ndb/tools/drop_index.cpp +++ b/storage/ndb/tools/drop_index.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/drop_tab.cpp b/storage/ndb/tools/drop_tab.cpp index 8d07afbbf50..88d5306da7e 100644 --- a/storage/ndb/tools/drop_tab.cpp +++ b/storage/ndb/tools/drop_tab.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/listTables.cpp b/storage/ndb/tools/listTables.cpp index 45129cb34af..87cd5944805 100644 --- a/storage/ndb/tools/listTables.cpp +++ b/storage/ndb/tools/listTables.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/make-errors.pl b/storage/ndb/tools/make-errors.pl index ac9c7d1d58a..67bb8bcaaa6 100644 --- a/storage/ndb/tools/make-errors.pl +++ b/storage/ndb/tools/make-errors.pl @@ -1,6 +1,6 @@ #! /usr/local/bin/perl -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/make-links.sh b/storage/ndb/tools/make-links.sh index 6008406ad6a..03457b16bfa 100755 --- a/storage/ndb/tools/make-links.sh +++ b/storage/ndb/tools/make-links.sh @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/ndb_config.cpp b/storage/ndb/tools/ndb_config.cpp index af36103f947..0f110c859fa 100644 --- a/storage/ndb/tools/ndb_config.cpp +++ b/storage/ndb/tools/ndb_config.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/ndb_error_reporter b/storage/ndb/tools/ndb_error_reporter index 1af3bf83469..ef1c2682c4b 100644 --- a/storage/ndb/tools/ndb_error_reporter +++ b/storage/ndb/tools/ndb_error_reporter @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# Copyright (C) 2005 MySQL AB +# Copyright (c) 2005-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/ndb_test_platform.cpp b/storage/ndb/tools/ndb_test_platform.cpp index 27b50df5188..0c4f4310798 100644 --- a/storage/ndb/tools/ndb_test_platform.cpp +++ b/storage/ndb/tools/ndb_test_platform.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/ndbsql.cpp b/storage/ndb/tools/ndbsql.cpp index c243209afdd..87f1ff40d36 100644 --- a/storage/ndb/tools/ndbsql.cpp +++ b/storage/ndb/tools/ndbsql.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2005 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/restore/Restore.cpp b/storage/ndb/tools/restore/Restore.cpp index f599bb21978..3e5b59e3180 100644 --- a/storage/ndb/tools/restore/Restore.cpp +++ b/storage/ndb/tools/restore/Restore.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/restore/Restore.hpp b/storage/ndb/tools/restore/Restore.hpp index f6de9245509..26f062d09a0 100644 --- a/storage/ndb/tools/restore/Restore.hpp +++ b/storage/ndb/tools/restore/Restore.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/restore/consumer.cpp b/storage/ndb/tools/restore/consumer.cpp index e7ce561c5f0..067f803308b 100644 --- a/storage/ndb/tools/restore/consumer.cpp +++ b/storage/ndb/tools/restore/consumer.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/restore/consumer.hpp b/storage/ndb/tools/restore/consumer.hpp index 4121cc4e1b4..870efb7346f 100644 --- a/storage/ndb/tools/restore/consumer.hpp +++ b/storage/ndb/tools/restore/consumer.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/restore/consumer_printer.cpp b/storage/ndb/tools/restore/consumer_printer.cpp index 721e0332381..7cb750c8ac6 100644 --- a/storage/ndb/tools/restore/consumer_printer.cpp +++ b/storage/ndb/tools/restore/consumer_printer.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/restore/consumer_printer.hpp b/storage/ndb/tools/restore/consumer_printer.hpp index 688d60af308..032c0018325 100644 --- a/storage/ndb/tools/restore/consumer_printer.hpp +++ b/storage/ndb/tools/restore/consumer_printer.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/restore/consumer_restore.hpp b/storage/ndb/tools/restore/consumer_restore.hpp index 8694cbffb0c..094c1d92112 100644 --- a/storage/ndb/tools/restore/consumer_restore.hpp +++ b/storage/ndb/tools/restore/consumer_restore.hpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/restore/ndb_nodegroup_map.h b/storage/ndb/tools/restore/ndb_nodegroup_map.h index 120057605ea..cd6932fcb35 100644 --- a/storage/ndb/tools/restore/ndb_nodegroup_map.h +++ b/storage/ndb/tools/restore/ndb_nodegroup_map.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/restore/restore_main.cpp b/storage/ndb/tools/restore/restore_main.cpp index 7db77524ad8..81c58e96fc7 100644 --- a/storage/ndb/tools/restore/restore_main.cpp +++ b/storage/ndb/tools/restore/restore_main.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/rgrep b/storage/ndb/tools/rgrep index b1ed4fb6f5e..5c033d5169f 100755 --- a/storage/ndb/tools/rgrep +++ b/storage/ndb/tools/rgrep @@ -1,6 +1,6 @@ #!/vobs/wds/swt/bin/perl -# Copyright (C) 2004 MySQL AB +# Copyright (c) 2004, 2005 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/select_all.cpp b/storage/ndb/tools/select_all.cpp index 23d5f95f3f7..3ae5ef40daa 100644 --- a/storage/ndb/tools/select_all.cpp +++ b/storage/ndb/tools/select_all.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/select_count.cpp b/storage/ndb/tools/select_count.cpp index 73982e886b5..5fadc81abe7 100644 --- a/storage/ndb/tools/select_count.cpp +++ b/storage/ndb/tools/select_count.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/storage/ndb/tools/waiter.cpp b/storage/ndb/tools/waiter.cpp index fc2a4b368b1..476f3bf81c9 100644 --- a/storage/ndb/tools/waiter.cpp +++ b/storage/ndb/tools/waiter.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 MySQL AB +/* Copyright (c) 2003-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/strings/bchange.c b/strings/bchange.c index 13d491844f7..6854331d64e 100644 --- a/strings/bchange.c +++ b/strings/bchange.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2006, 2007 MySQL AB +/* Copyright (c) 2000, 2001, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/bfill.c b/strings/bfill.c index e6c1c3e0ed0..05089c84090 100644 --- a/strings/bfill.c +++ b/strings/bfill.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000-2002, 2006 MySQL AB +/* Copyright (c) 2000-2002 MySQL AB Use is subject to license terms. This library is free software; you can redistribute it and/or diff --git a/strings/bmove.c b/strings/bmove.c index f7f29271de1..43068dc7000 100644 --- a/strings/bmove.c +++ b/strings/bmove.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000-2002, 2006 MySQL AB +/* Copyright (c) 2000-2002 MySQL AB Use is subject to license terms. This library is free software; you can redistribute it and/or diff --git a/strings/bmove512.c b/strings/bmove512.c index bd863f82071..14643538e60 100644 --- a/strings/bmove512.c +++ b/strings/bmove512.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2003, 2006, 2007 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/bmove_upp-sparc.s b/strings/bmove_upp-sparc.s index f745f0fc613..a61140320a2 100644 --- a/strings/bmove_upp-sparc.s +++ b/strings/bmove_upp-sparc.s @@ -1,4 +1,4 @@ -! Copyright (C) 2000, 2002 MySQL AB +! Copyright (c) 2000, 2002, 2006 MySQL AB ! ! This library is free software; you can redistribute it and/or ! modify it under the terms of the GNU Library General Public diff --git a/strings/bmove_upp.c b/strings/bmove_upp.c index 48af2e43737..f411029fefa 100644 --- a/strings/bmove_upp.c +++ b/strings/bmove_upp.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2006, 2007 MySQL AB +/* Copyright (c) 2000, 2001, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/ctype-mb.c b/strings/ctype-mb.c index 92d7b5f48c8..41381770089 100644 --- a/strings/ctype-mb.c +++ b/strings/ctype-mb.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/strings/ctype-simple.c b/strings/ctype-simple.c index 082868600b2..eef6a65ee18 100644 --- a/strings/ctype-simple.c +++ b/strings/ctype-simple.c @@ -1,5 +1,4 @@ -/* Copyright (c) 2002-2007 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. +/* Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/strings/ctype-uca.c b/strings/ctype-uca.c index 26a3bac7964..efb1f88cec0 100644 --- a/strings/ctype-uca.c +++ b/strings/ctype-uca.c @@ -1,5 +1,4 @@ -/* Copyright (c) 2004-2007 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. +/* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c index 004a09866aa..87c53717fd9 100644 --- a/strings/ctype-utf8.c +++ b/strings/ctype-utf8.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public diff --git a/strings/ctype.c b/strings/ctype.c index ecb827cc778..1de656d2bd3 100644 --- a/strings/ctype.c +++ b/strings/ctype.c @@ -1,5 +1,4 @@ -/* Copyright (c) 2000-2007 MySQL AB, 2008, 2009 Sun Microsystems, Inc. - Use is subject to license terms. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/strings/do_ctype.c b/strings/do_ctype.c index fed00c82624..cc2e4a79937 100644 --- a/strings/do_ctype.c +++ b/strings/do_ctype.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000-2002, 2006, 2007 MySQL AB +/* Copyright (c) 2000-2002, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/int2str.c b/strings/int2str.c index 8f039d1d5cd..073b3bed69d 100644 --- a/strings/int2str.c +++ b/strings/int2str.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2004, 2006, 2007 MySQL AB +/* Copyright (c) 2000, 2001, 2004, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/is_prefix.c b/strings/is_prefix.c index e3cff258a24..3f3ece4fa9b 100644 --- a/strings/is_prefix.c +++ b/strings/is_prefix.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2006 MySQL AB +/* Copyright (c) 2000, 2001 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/llstr.c b/strings/llstr.c index 0734137f3c4..1df2ab865fe 100644 --- a/strings/llstr.c +++ b/strings/llstr.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2004, 2006, 2007 MySQL AB +/* Copyright (c) 2000, 2001, 2004, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/longlong2str-x86.s b/strings/longlong2str-x86.s index 3de43a96e78..ce820878e5c 100644 --- a/strings/longlong2str-x86.s +++ b/strings/longlong2str-x86.s @@ -1,4 +1,4 @@ -# Copyright (C) 2000 MySQL AB +# Copyright (c) 2000-2002, 2004, 2005 MySQL AB # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/strings/longlong2str.c b/strings/longlong2str.c index 10e9dc568f8..6c96e2ce35d 100644 --- a/strings/longlong2str.c +++ b/strings/longlong2str.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2004, 2006, 2007 MySQL AB +/* Copyright (c) 2000, 2001, 2004, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/longlong2str_asm.c b/strings/longlong2str_asm.c index a6a64d7d249..b9a6b35309d 100644 --- a/strings/longlong2str_asm.c +++ b/strings/longlong2str_asm.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2005, 2006 MySQL AB +/* Copyright (c) 2005 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/macros.asm b/strings/macros.asm index 1eedcfbb15f..93af58ea247 100644 --- a/strings/macros.asm +++ b/strings/macros.asm @@ -1,4 +1,4 @@ -; Copyright (C) 2000 MySQL AB +; Copyright (c) 2000, 2006 MySQL AB ; ; This library is free software; you can redistribute it and/or ; modify it under the terms of the GNU Library General Public diff --git a/strings/my_strtoll10-x86.s b/strings/my_strtoll10-x86.s index f73428de7de..d16287fe17a 100644 --- a/strings/my_strtoll10-x86.s +++ b/strings/my_strtoll10-x86.s @@ -1,4 +1,4 @@ -# Copyright (C) 2003 MySQL AB +# Copyright (c) 2003, 2005, 2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/strings/my_strtoll10.c b/strings/my_strtoll10.c index 7309a2ed20d..0f94302fdeb 100644 --- a/strings/my_strtoll10.c +++ b/strings/my_strtoll10.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2003-2007 MySQL AB +/* Copyright (c) 2003-2005, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/ptr_cmp.asm b/strings/ptr_cmp.asm index b2a020d8a37..925aa46e292 100644 --- a/strings/ptr_cmp.asm +++ b/strings/ptr_cmp.asm @@ -1,4 +1,4 @@ -; Copyright (C) 2000 MySQL AB +; Copyright (c) 2000, 2006 MySQL AB ; ; This library is free software; you can redistribute it and/or ; modify it under the terms of the GNU Library General Public diff --git a/strings/r_strinstr.c b/strings/r_strinstr.c index 3d97fe3959c..ed766163dee 100644 --- a/strings/r_strinstr.c +++ b/strings/r_strinstr.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2004, 2006, 2007 MySQL AB +/* Copyright (c) 2000, 2001, 2004, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/str2int.c b/strings/str2int.c index 925880fd83e..2c40fc62528 100644 --- a/strings/str2int.c +++ b/strings/str2int.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000-2003, 2006 MySQL AB +/* Copyright (c) 2000-2003 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/str_alloc.c b/strings/str_alloc.c index 9e870950c27..6368ae5bd17 100644 --- a/strings/str_alloc.c +++ b/strings/str_alloc.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2005, 2006 MySQL AB +/* Copyright (c) 2005 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strappend-sparc.s b/strings/strappend-sparc.s index d5add816eb0..9c58ffd7a1f 100644 --- a/strings/strappend-sparc.s +++ b/strings/strappend-sparc.s @@ -1,4 +1,4 @@ -! Copyright (C) 2000, 2002 MySQL AB +! Copyright (c) 2000, 2002, 2006 MySQL AB ! ! This library is free software; you can redistribute it and/or ! modify it under the terms of the GNU Library General Public diff --git a/strings/strappend.c b/strings/strappend.c index 980cc26af74..b617579c51f 100644 --- a/strings/strappend.c +++ b/strings/strappend.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2006, 2007 MySQL AB +/* Copyright (c) 2000, 2001, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strcend.c b/strings/strcend.c index 0ff48223500..6c5be8d541c 100644 --- a/strings/strcend.c +++ b/strings/strcend.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2006 MySQL AB +/* Copyright (c) 2000, 2001 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strcont.c b/strings/strcont.c index 71755ca4f9a..b12045d45a4 100644 --- a/strings/strcont.c +++ b/strings/strcont.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2006, 2007 MySQL AB +/* Copyright (c) 2000, 2001, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strend-sparc.s b/strings/strend-sparc.s index f264fcef32f..8cfa1af00d3 100644 --- a/strings/strend-sparc.s +++ b/strings/strend-sparc.s @@ -1,4 +1,4 @@ -! Copyright (C) 2000, 2002 MySQL AB +! Copyright (c) 2000, 2002, 2006 MySQL AB ! ! This library is free software; you can redistribute it and/or ! modify it under the terms of the GNU Library General Public diff --git a/strings/strend.c b/strings/strend.c index 89178d2a662..3e72d6cc8c8 100644 --- a/strings/strend.c +++ b/strings/strend.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000-2002, 2006 MySQL AB +/* Copyright (c) 2000-2002 MySQL AB Use is subject to license terms. This library is free software; you can redistribute it and/or diff --git a/strings/strfill.c b/strings/strfill.c index 16fad9f3670..72ee526582d 100644 --- a/strings/strfill.c +++ b/strings/strfill.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2006, 2007 MySQL AB +/* Copyright (c) 2000, 2001, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strings-not-used.h b/strings/strings-not-used.h index 3efaa8ab6eb..5763f32e0ca 100644 --- a/strings/strings-not-used.h +++ b/strings/strings-not-used.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/strings/strings-x86.s b/strings/strings-x86.s index db7bb0c1274..3af8ec024dc 100644 --- a/strings/strings-x86.s +++ b/strings/strings-x86.s @@ -1,4 +1,4 @@ -# Copyright (C) 2000 MySQL AB +# Copyright (c) 2000, 2002-2004 MySQL AB # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. diff --git a/strings/strings.asm b/strings/strings.asm index 2224025cc72..24f7fed6a71 100644 --- a/strings/strings.asm +++ b/strings/strings.asm @@ -1,4 +1,4 @@ -; Copyright (C) 2000, 2003 MySQL AB +; Copyright (c) 2000, 2003, 2006 MySQL AB ; ; This library is free software; you can redistribute it and/or ; modify it under the terms of the GNU Library General Public diff --git a/strings/strinstr-sparc.s b/strings/strinstr-sparc.s index 5278aff6aa7..c39b2793a34 100644 --- a/strings/strinstr-sparc.s +++ b/strings/strinstr-sparc.s @@ -1,4 +1,4 @@ -! Copyright (C) 2000 MySQL AB +! Copyright (c) 2000, 2006 MySQL AB ! ! This library is free software; you can redistribute it and/or ! modify it under the terms of the GNU Library General Public diff --git a/strings/strinstr.c b/strings/strinstr.c index c95dfe9d711..a2a6218d2b9 100644 --- a/strings/strinstr.c +++ b/strings/strinstr.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2004, 2006, 2007 MySQL AB +/* Copyright (c) 2000, 2001, 2004, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strmake-sparc.s b/strings/strmake-sparc.s index 36db8efd402..68f30da6e53 100644 --- a/strings/strmake-sparc.s +++ b/strings/strmake-sparc.s @@ -1,4 +1,4 @@ -! Copyright (C) 2000, 2002 MySQL AB +! Copyright (c) 2000, 2002, 2006 MySQL AB ! ! This library is free software; you can redistribute it and/or ! modify it under the terms of the GNU Library General Public diff --git a/strings/strmake.c b/strings/strmake.c index 1a5ad2286df..6e437fca487 100644 --- a/strings/strmake.c +++ b/strings/strmake.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2003, 2006-2008 MySQL AB, 2009 Sun Microsystems, Inc. +/* Copyright (c) 2000, 2001, 2003, 2007, 2008 MySQL AB, 2009 Sun Microsystems, Inc. Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strmov-sparc.s b/strings/strmov-sparc.s index f124da2dc9f..b472aad5d90 100644 --- a/strings/strmov-sparc.s +++ b/strings/strmov-sparc.s @@ -1,4 +1,4 @@ -! Copyright (C) 2000, 2002 MySQL AB +! Copyright (c) 2000, 2002, 2006 MySQL AB ! ! This library is free software; you can redistribute it and/or ! modify it under the terms of the GNU Library General Public diff --git a/strings/strmov.c b/strings/strmov.c index e670654eb95..84e73570e05 100644 --- a/strings/strmov.c +++ b/strings/strmov.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2006 MySQL AB, 2009 Sun Microsystems, Inc. +/* Copyright (c) 2000, 2001 MySQL AB, 2009 Sun Microsystems, Inc. Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strnlen.c b/strings/strnlen.c index 4826c17ff19..1d35ed66edc 100644 --- a/strings/strnlen.c +++ b/strings/strnlen.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2006, 2007 MySQL AB +/* Copyright (c) 2000, 2001, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strnmov-sparc.s b/strings/strnmov-sparc.s index df0c4bebf03..a4b6cdd0bc0 100644 --- a/strings/strnmov-sparc.s +++ b/strings/strnmov-sparc.s @@ -1,4 +1,4 @@ -! Copyright (C) 2000, 2002 MySQL AB +! Copyright (c) 2000, 2002, 2006 MySQL AB ! ! This library is free software; you can redistribute it and/or ! modify it under the terms of the GNU Library General Public diff --git a/strings/strnmov.c b/strings/strnmov.c index 64cc46e3c05..4af52a75777 100644 --- a/strings/strnmov.c +++ b/strings/strnmov.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2006, 2007 MySQL AB +/* Copyright (c) 2000, 2001, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strstr-sparc.s b/strings/strstr-sparc.s index 2a6590c9c93..0593c1ddf61 100644 --- a/strings/strstr-sparc.s +++ b/strings/strstr-sparc.s @@ -1,4 +1,4 @@ -! Copyright (C) 2000, 2002 MySQL AB +! Copyright (c) 2000, 2002, 2006 MySQL AB ! ! This library is free software; you can redistribute it and/or ! modify it under the terms of the GNU Library General Public diff --git a/strings/strstr.c b/strings/strstr.c index 8c7be350bb6..292dd94d53d 100644 --- a/strings/strstr.c +++ b/strings/strstr.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000-2002, 2004, 2006 MySQL AB +/* Copyright (c) 2000-2002, 2004 MySQL AB Use is subject to license terms. This library is free software; you can redistribute it and/or diff --git a/strings/strto.c b/strings/strto.c index 8255c38f52e..4d05e8eaf71 100644 --- a/strings/strto.c +++ b/strings/strto.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000-2004, 2006, 2007 MySQL AB +/* Copyright (c) 2000-2004, 2007 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strtol.c b/strings/strtol.c index 7b4d13f8778..90490f9c75b 100644 --- a/strings/strtol.c +++ b/strings/strtol.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2004, 2006 MySQL AB +/* Copyright (c) 2000, 2001, 2004 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strtoll.c b/strings/strtoll.c index 0858b21865e..06070cb4c9b 100644 --- a/strings/strtoll.c +++ b/strings/strtoll.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2003, 2004, 2006 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2004 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strtoul.c b/strings/strtoul.c index 2c5ef0867fd..fbfa4d5ba64 100644 --- a/strings/strtoul.c +++ b/strings/strtoul.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2004, 2006 MySQL AB +/* Copyright (c) 2000, 2001, 2004 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strtoull.c b/strings/strtoull.c index 819d9ab9d72..aad0207cff3 100644 --- a/strings/strtoull.c +++ b/strings/strtoull.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2003, 2004, 2006 MySQL AB +/* Copyright (c) 2000, 2001, 2003, 2004 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/strings/strxmov-sparc.s b/strings/strxmov-sparc.s index 11ae49a876b..8a7032f67c6 100644 --- a/strings/strxmov-sparc.s +++ b/strings/strxmov-sparc.s @@ -1,4 +1,4 @@ -! Copyright (C) 2000, 2002 MySQL AB +! Copyright (c) 2000, 2002, 2006 MySQL AB ! ! This library is free software; you can redistribute it and/or ! modify it under the terms of the GNU Library General Public diff --git a/strings/strxmov.asm b/strings/strxmov.asm index ad5d0dd3db0..20273da868f 100644 --- a/strings/strxmov.asm +++ b/strings/strxmov.asm @@ -1,4 +1,4 @@ -; Copyright (C) 2000 MySQL AB +; Copyright (c) 2000, 2006 MySQL AB ; ; This library is free software; you can redistribute it and/or ; modify it under the terms of the GNU Library General Public diff --git a/strings/strxmov.c b/strings/strxmov.c index c5963170c91..51206300857 100644 --- a/strings/strxmov.c +++ b/strings/strxmov.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000-2002, 2006 MySQL AB +/* Copyright (c) 2000-2002 MySQL AB Use is subject to license terms. This library is free software; you can redistribute it and/or diff --git a/strings/strxnmov.c b/strings/strxnmov.c index f9db76c0264..6c0182d97d7 100644 --- a/strings/strxnmov.c +++ b/strings/strxnmov.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000-2002, 2005-2007 MySQL AB +/* Copyright (c) 2000-2002, 2005, 2007 MySQL AB Use is subject to license terms. This library is free software; you can redistribute it and/or diff --git a/strings/t_ctype.h b/strings/t_ctype.h index af4f3ebbaa1..31c366a9ab4 100644 --- a/strings/t_ctype.h +++ b/strings/t_ctype.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2001, 2003 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/strings/udiv.c b/strings/udiv.c index c7780dde64a..5c2415536f1 100644 --- a/strings/udiv.c +++ b/strings/udiv.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2001, 2006 MySQL AB +/* Copyright (c) 2000, 2001 MySQL AB Use is subject to license terms. This program is free software; you can redistribute it and/or modify diff --git a/support-files/MacOSX/Makefile.am b/support-files/MacOSX/Makefile.am index 4ee5b90263c..7b8a5818453 100644 --- a/support-files/MacOSX/Makefile.am +++ b/support-files/MacOSX/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2003-2006 MySQL AB +# Copyright (c) 2003-2006, 2008 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/support-files/MySQL-shared-compat.spec.sh b/support-files/MySQL-shared-compat.spec.sh index 14a98616863..176831613c3 100644 --- a/support-files/MySQL-shared-compat.spec.sh +++ b/support-files/MySQL-shared-compat.spec.sh @@ -7,7 +7,7 @@ # separate "MySQL-shared" package. This spec file simply repackages two # already existing MySQL-shared RPMs into a single package. # -# Copyright (C) 2003 MySQL AB +# Copyright (c) 2003-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the Free diff --git a/support-files/RHEL4-SElinux/Makefile.am b/support-files/RHEL4-SElinux/Makefile.am index 960a1fea554..65e018f1f77 100644 --- a/support-files/RHEL4-SElinux/Makefile.am +++ b/support-files/RHEL4-SElinux/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2001, 2003-2006 MySQL AB +# Copyright (c) 2000, 2001, 2003-2007 MySQL AB # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 395010b3773..115a1380e32 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -1,4 +1,4 @@ -# Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 2093fc0da36..68ed2be30bf 100755 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2006 MySQL AB +# Copyright (c) 2006, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/tests/Makefile.am b/tests/Makefile.am index 3da18683f85..dfc4cfbc897 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,5 +1,4 @@ -# Copyright (c) 2000-2007 MySQL AB, 2009 Sun Microsystems, Inc. -# Use is subject to license terms. +# Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public diff --git a/tests/connect_test.c b/tests/connect_test.c index a0f2d7561d1..6dc2375e2dc 100644 --- a/tests/connect_test.c +++ b/tests/connect_test.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002-2004 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/tests/fork_big.pl b/tests/fork_big.pl index a674f7f7164..21590f870c4 100755 --- a/tests/fork_big.pl +++ b/tests/fork_big.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# Copyright (C) 2001 MySQL AB +# Copyright (c) 2001, 2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/tests/fork_big2.pl b/tests/fork_big2.pl index 0d4aee7c774..3595166048a 100644 --- a/tests/fork_big2.pl +++ b/tests/fork_big2.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# Copyright (C) 2002, 2005 MySQL AB +# Copyright (c) 2002, 2003, 2005, 2006 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/tests/insert_test.c b/tests/insert_test.c index bb7b0a2f928..28f794044b8 100644 --- a/tests/insert_test.c +++ b/tests/insert_test.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2004 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/tests/list_test.c b/tests/list_test.c index 8b752c8b6e4..7e739438865 100644 --- a/tests/list_test.c +++ b/tests/list_test.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2003, 2004 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/tests/select_test.c b/tests/select_test.c index 5a9021c4dd6..a27f03f3b35 100644 --- a/tests/select_test.c +++ b/tests/select_test.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2002-2004 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/tests/showdb_test.c b/tests/showdb_test.c index 4be48c28205..1ad9577c699 100644 --- a/tests/showdb_test.c +++ b/tests/showdb_test.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2003, 2004 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/tests/ssl_test.c b/tests/ssl_test.c index ad6bc925cc6..b75c6f66760 100644 --- a/tests/ssl_test.c +++ b/tests/ssl_test.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000, 2003, 2004, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/tests/thread_test.c b/tests/thread_test.c index 8e1c58ebbec..0b80451bee8 100644 --- a/tests/thread_test.c +++ b/tests/thread_test.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2004, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/unittest/mytap/Makefile.am b/unittest/mytap/Makefile.am index c02bcd3b49d..62f38a787fb 100644 --- a/unittest/mytap/Makefile.am +++ b/unittest/mytap/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2006 MySQL AB +# Copyright (c) 2006, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/unittest/mytap/t/Makefile.am b/unittest/mytap/t/Makefile.am index e89a088bb3a..aa58f5a1d40 100644 --- a/unittest/mytap/t/Makefile.am +++ b/unittest/mytap/t/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2006 MySQL AB +# Copyright (c) 2006, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/vio/CMakeLists.txt b/vio/CMakeLists.txt index 164bcde7c4b..9a275fac3c9 100755 --- a/vio/CMakeLists.txt +++ b/vio/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2006 MySQL AB +# Copyright (c) 2006-2008 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/vio/test-ssl.c b/vio/test-ssl.c index 855dc5fbb3e..a74c6739ee0 100644 --- a/vio/test-ssl.c +++ b/vio/test-ssl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/vio/test-sslclient.c b/vio/test-sslclient.c index e1b8461397b..4bfd2ca32a3 100644 --- a/vio/test-sslclient.c +++ b/vio/test-sslclient.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2003, 2005-2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/vio/test-sslserver.c b/vio/test-sslserver.c index f55b5bae53a..ea92946c9fe 100644 --- a/vio/test-sslserver.c +++ b/vio/test-sslserver.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2004, 2006, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/vio/viosocket.c b/vio/viosocket.c index 9633a01f689..c969a14bd34 100644 --- a/vio/viosocket.c +++ b/vio/viosocket.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/vio/viossl.c b/vio/viossl.c index 143d108d3d7..0ac96387bef 100644 --- a/vio/viossl.c +++ b/vio/viossl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2008 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/vio/viosslfactories.c b/vio/viosslfactories.c index 037c34802e9..5d31d1dde56 100644 --- a/vio/viosslfactories.c +++ b/vio/viosslfactories.c @@ -1,6 +1,5 @@ /* - Copyright (c) 2000-2008 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. + Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/vio/viotest-ssl.c b/vio/viotest-ssl.c index b8abbac4ed6..7fe652d118e 100644 --- a/vio/viotest-ssl.c +++ b/vio/viotest-ssl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 MySQL AB +/* Copyright (c) 2000-2003, 2007 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/win/build-nmake-x64.bat b/win/build-nmake-x64.bat index f73574ac8de..3a68f37415f 100644 --- a/win/build-nmake-x64.bat +++ b/win/build-nmake-x64.bat @@ -1,6 +1,6 @@ @echo off -REM Copyright (C) 2006 MySQL AB +REM Copyright (c) 2006, 2007 MySQL AB REM REM This program is free software; you can redistribute it and/or modify REM it under the terms of the GNU General Public License as published by diff --git a/win/build-nmake.bat b/win/build-nmake.bat index 89505c08313..803c32ae02c 100644 --- a/win/build-nmake.bat +++ b/win/build-nmake.bat @@ -1,6 +1,6 @@ @echo off -REM Copyright (C) 2006 MySQL AB +REM Copyright (c) 2006, 2007 MySQL AB REM REM This program is free software; you can redistribute it and/or modify REM it under the terms of the GNU General Public License as published by diff --git a/win/build-vs71.bat b/win/build-vs71.bat index 159b1ec97d1..ec67415945b 100755 --- a/win/build-vs71.bat +++ b/win/build-vs71.bat @@ -1,6 +1,6 @@ @echo off -REM Copyright (C) 2006 MySQL AB +REM Copyright (c) 2006, 2007 MySQL AB REM REM This program is free software; you can redistribute it and/or modify REM it under the terms of the GNU General Public License as published by diff --git a/win/build-vs8.bat b/win/build-vs8.bat index ff0eeb0a8cb..1e36cf55a8c 100755 --- a/win/build-vs8.bat +++ b/win/build-vs8.bat @@ -1,6 +1,6 @@ @echo off -REM Copyright (C) 2006 MySQL AB +REM Copyright (c) 2006, 2007 MySQL AB REM REM This program is free software; you can redistribute it and/or modify REM it under the terms of the GNU General Public License as published by diff --git a/zlib/CMakeLists.txt b/zlib/CMakeLists.txt index 43235b631f6..9978ff8c2c7 100755 --- a/zlib/CMakeLists.txt +++ b/zlib/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2006 MySQL AB +# Copyright (c) 2006, 2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/zlib/Makefile.am b/zlib/Makefile.am index edcbd5f4a75..8ccbb606d17 100644 --- a/zlib/Makefile.am +++ b/zlib/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2004-2006 MySQL AB +# Copyright (c) 2004-2007 MySQL AB # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by From fd4ea8b0942cd6c709f3931a3afc280c5fa16a1c Mon Sep 17 00:00:00 2001 From: Harin Vadodaria Date: Tue, 26 Feb 2013 21:23:06 +0530 Subject: [PATCH 091/172] Bug#16372927: STACK OVERFLOW WITH LONG DATABASE NAME IN GRANT STATEMENT Description: A missing length check causes problem while copying source to destination when lower_case_table_names is set to a value other than 0. This patch fixes the issue by ensuring that requried bound check is performed. --- sql/sql_acl.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 17000e40b97..df31feccb26 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -3475,7 +3475,8 @@ bool mysql_grant(THD *thd, const char *db, List &list, if (lower_case_table_names && db) { - strmov(tmp_db,db); + strnmov(tmp_db,db,NAME_LEN); + tmp_db[NAME_LEN]= '\0'; my_casedn_str(files_charset_info, tmp_db); db=tmp_db; } From d065d727042f3c0689bc3ac8320836e166886410 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 27 Feb 2013 10:00:50 +0200 Subject: [PATCH 092/172] Bug#16400920 INNODB TRIES TO PASS EMPTY BUFFER TO ZLIB, GETS Z_BUF_ERROR page_zip_compress_node_ptrs(): Do not attempt to invoke deflate() with c_stream->avail_in, because it will result in Z_BUF_ERROR (and page_zip_compress() failure and unnecessary further splits of the node pointer page). A node pointer record can have empty payload, provided that all key fields are empty. Approved by Jimmy Yang --- storage/innodb_plugin/ChangeLog | 8 +++++++- storage/innodb_plugin/page/page0zip.c | 11 ++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/storage/innodb_plugin/ChangeLog b/storage/innodb_plugin/ChangeLog index d1953ec6d61..a05b38d8fc2 100644 --- a/storage/innodb_plugin/ChangeLog +++ b/storage/innodb_plugin/ChangeLog @@ -1,6 +1,12 @@ +2013-02-27 The InnoDB Team + + * page/page0zip.c: + Fix Bug#16400920 INNODB TRIES TO PASS EMPTY BUFFER TO ZLIB, + GETS Z_BUF_ERROR + 2013-01-21 The InnoDB Team - * buf/buf0buf.cc, handler/ha_innodb.cc: + * buf/buf0buf.c, handler/ha_innodb.cc: Fix Bug#16067973 DROP TABLE IS SLOW WHEN IT DECOMPRESSES COMPRESSED-ONLY PAGES diff --git a/storage/innodb_plugin/page/page0zip.c b/storage/innodb_plugin/page/page0zip.c index 546401ccec0..2330af8d6b3 100644 --- a/storage/innodb_plugin/page/page0zip.c +++ b/storage/innodb_plugin/page/page0zip.c @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2005, 2011, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2005, 2013, Oracle and/or its affiliates. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -837,11 +837,12 @@ page_zip_compress_node_ptrs( c_stream->next_in = (byte*) rec; c_stream->avail_in = rec_offs_data_size(offsets) - REC_NODE_PTR_SIZE; - ut_ad(c_stream->avail_in); - err = deflate(c_stream, Z_NO_FLUSH); - if (UNIV_UNLIKELY(err != Z_OK)) { - break; + if (c_stream->avail_in) { + err = deflate(c_stream, Z_NO_FLUSH); + if (UNIV_UNLIKELY(err != Z_OK)) { + break; + } } ut_ad(!c_stream->avail_in); From e1e43631f86828b90e4f80eb1b76501676ff565f Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 27 Feb 2013 12:44:58 -0600 Subject: [PATCH 093/172] Bug #16305265 HANG IN RENAME TABLE This is a deadlock that will also be fixed in the server by Bug #11844915 - HANG IN THDVAR MUTEX ACQUISITION. So this is a simple alternate method of fixing the same problem, but from within InnoDB. The simple change is to make rename table start a transaction before locking dict_sys->mutex since thd_supports_xa() can call THDVAR which can lock a mutex, LOCK_global_system_variables, that is used in the server by many other activities. At least one of those, sys_var::update(), can call back into InnoDB and try to lock dict_sys->mutex while holding LOCK_global_system_variables. The other bug fix for 11844915 eliminates the use of LOCK_global_system_variables for calls to THDVAR. Approved by marko in http://rb.no.oracle.com/rb/r/2000/ --- storage/innobase/handler/ha_innodb.cc | 8 +++++++- storage/innobase/row/row0mysql.c | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 65d6726b5bf..997fdb6244c 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -7599,12 +7599,18 @@ innobase_rename_table( DEBUG_SYNC_C("innodb_rename_table_ready"); /* Serialize data dictionary operations with dictionary mutex: - no deadlocks can occur then in these operations */ + no deadlocks can occur then in these operations. Start the + transaction first to avoid a possible deadlock in the server. */ + trx_start_if_not_started(trx); if (lock_and_commit) { row_mysql_lock_data_dictionary(trx); } + /* Flag this transaction as a dictionary operation, so that + the data dictionary will be locked in crash recovery. */ + trx_set_dict_operation(trx, TRX_DICT_OP_INDEX); + error = row_rename_table_for_mysql( norm_from, norm_to, trx, lock_and_commit); diff --git a/storage/innobase/row/row0mysql.c b/storage/innobase/row/row0mysql.c index 73da6215f0d..77fa6518b35 100644 --- a/storage/innobase/row/row0mysql.c +++ b/storage/innobase/row/row0mysql.c @@ -3840,6 +3840,7 @@ row_rename_table_for_mysql( ut_a(old_name != NULL); ut_a(new_name != NULL); + ut_ad(trx->conc_state == TRX_ACTIVE); if (srv_created_new_raw || srv_force_recovery) { fputs("InnoDB: A new raw disk partition was initialized or\n" @@ -3864,7 +3865,6 @@ row_rename_table_for_mysql( } trx->op_info = "renaming table"; - trx_start_if_not_started(trx); old_is_tmp = row_is_mysql_tmp_table_name(old_name); new_is_tmp = row_is_mysql_tmp_table_name(new_name); From f8cd565dd70c64337ed3015cc63f5ec5d1b5e203 Mon Sep 17 00:00:00 2001 From: Gleb Shchepa Date: Wed, 27 Feb 2013 23:21:34 +0400 Subject: [PATCH 094/172] Bug #16311231: MISSING DATA ON SUBQUERY WITH WHERE + XOR IN IN-CLAUSE USING MYISAM OR MEMORY ENGINE Backport from 5.6. Original message: The coincidences caused a data loss: * The query has IN subqueries nested twice, * the WHERE clause of the inner subquery refers to the outer field, and the whole WHERE clause returns FALSE, * the inner subquery has a LEFT JOIN that joins a single row with a row of NULLs; one of that NULL columns represents the select list of the subquery. Normally, that inner subquery should return empty record set. However, in our case: * the Item_is_not_null_test item goes constant, since its underlying field is NULL (because of LEFT JOIN ... ON FALSE of const table row with a row of nulls); * we evaluate Item_is_not_null_test::val_int() as a part of fake HAVING expression of the transformed subquery; * as far as the underlying field is NULL, we optimize out the whole fake HAVING expression as FALSE as well as a whole subquery with a zero result: Impossible HAVING noticed after reading const tables"; * thus, the optimizer ignores the presence of the WHERE clause (the WHERE expression is FALSE in our case, so the subquery should return empty set); * however, during the evaluation of the Item_is_not_null_test::val_int() in the optimizer, it marked its "owner" with the "was_null" flag -- that forced the subquery to return UNKNOWN instead of empty set. That caused a wrong result. The problem is a regression of the small cleanup in the fix for the bug11827369 (the Item_is_not_null_test part) that conflicts with optimizations in the fix for the bug11752543. Before that regression the Item_is_not_null_test items never were constants. The fix is the rollback of Item_is_not_null_test parts of the bug11827369 fix. --- sql/item_cmpfunc.cc | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 9775cf732f5..50b8ec2cb32 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -4591,7 +4591,7 @@ longlong Item_is_not_null_test::val_int() { DBUG_ASSERT(fixed == 1); DBUG_ENTER("Item_is_not_null_test::val_int"); - if (const_item_cache) + if (!used_tables_cache && !with_subselect) { owner->was_null|= (!cached_value); DBUG_PRINT("info", ("cached: %ld", (long) cached_value)); @@ -4612,12 +4612,10 @@ longlong Item_is_not_null_test::val_int() */ void Item_is_not_null_test::update_used_tables() { - const_item_cache= false; if (!args[0]->maybe_null) { used_tables_cache= 0; /* is always true */ cached_value= (longlong) 1; - const_item_cache= true; } else { @@ -4626,7 +4624,6 @@ void Item_is_not_null_test::update_used_tables() { /* Remember if the value is always NULL or never NULL */ cached_value= (longlong) !args[0]->is_null(); - const_item_cache= true; } } } From 94b1b6533d56541787683f79ccf9b23995c3a7b3 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 28 Feb 2013 14:50:42 +0530 Subject: [PATCH 095/172] From 99f83c66841749a3e7507cc38a86c05823f5f2c7 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 28 Feb 2013 13:19:15 +0100 Subject: [PATCH 096/172] Bug#16414644 ASSERTION FAILED: SIZE == PFS_ALLOCATED_MEMORY Before this fix, the command SHOW ENGINE PERFORMANCE_SCHEMA STATUS could report wrong amount of memory allocated, when the amount of memory used exceeds 4GB. The problem is that size computations are not done using size_t, so that overflows do occur, truncating the results. This fix compute memory sizes properly with size_t. Tested manually. No test script provided, as the script would need to allocate too much memory for the test. --- storage/perfschema/pfs_engine_table.cc | 8 ++++---- storage/perfschema/pfs_global.cc | 4 ++-- storage/perfschema/pfs_global.h | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/storage/perfschema/pfs_engine_table.cc b/storage/perfschema/pfs_engine_table.cc index 38f6df3003d..2c9951e3f46 100644 --- a/storage/perfschema/pfs_engine_table.cc +++ b/storage/perfschema/pfs_engine_table.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -512,7 +512,7 @@ bool pfs_show_status(handlerton *hton, THD *thd, uint buflen; const char *name; int i; - uint size; + size_t size; DBUG_ENTER("pfs_show_status"); @@ -526,7 +526,7 @@ bool pfs_show_status(handlerton *hton, THD *thd, if (stat != HA_ENGINE_STATUS) DBUG_RETURN(false); - uint total_memory= 0; + size_t total_memory= 0; for (i=0; /* empty */; i++) { @@ -763,7 +763,7 @@ bool pfs_show_status(handlerton *hton, THD *thd, break; } - buflen= int10_to_str(size, buf, 10) - buf; + buflen= longlong10_to_str(size, buf, 10) - buf; if (print(thd, PERFORMANCE_SCHEMA_str.str, PERFORMANCE_SCHEMA_str.length, name, strlen(name), diff --git a/storage/perfschema/pfs_global.cc b/storage/perfschema/pfs_global.cc index fa57f335325..335f57c69c6 100644 --- a/storage/perfschema/pfs_global.cc +++ b/storage/perfschema/pfs_global.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,7 +26,7 @@ #include bool pfs_initialized= false; -ulonglong pfs_allocated_memory= 0; +size_t pfs_allocated_memory= 0; /** Memory allocation for the performance schema. diff --git a/storage/perfschema/pfs_global.h b/storage/perfschema/pfs_global.h index c0c0490a380..5a3cc342b7d 100644 --- a/storage/perfschema/pfs_global.h +++ b/storage/perfschema/pfs_global.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ */ extern bool pfs_initialized; -extern ulonglong pfs_allocated_memory; +extern size_t pfs_allocated_memory; void *pfs_malloc(size_t size, myf flags); #define PFS_MALLOC_ARRAY(n, T, f) \ From 5c22652bab3993d1d448349077a27521be30017b Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 28 Feb 2013 14:36:00 +0100 Subject: [PATCH 097/172] Updated mysql.spec.sh file for br16298542 --- support-files/mysql.spec.sh | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index bac22fc96a9..ab26a7b6b8f 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -286,11 +286,12 @@ documentation and the manual for more information. Summary: MySQL: a very fast and reliable SQL database server Group: Applications/Databases Requires: %{distro_requires} -Provides: msqlormysql MySQL MySQL-server -Conflicts: mysql mysql-server mysql-advanced mysql-server-advanced Obsoletes: MySQL MySQL-server +Obsoletes: mysql mysql-server mysql-advanced mysql-server-advanced Obsoletes: MySQL-server-classic MySQL-server-community MySQL-server-enterprise Obsoletes: MySQL-server-advanced MySQL-server-advanced-gpl MySQL-server-enterprise-gpl +Provides: msqlormysql MySQL MySQL-server +Provides: mysql %description -n MySQL-server%{product_suffix} The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, @@ -320,11 +321,12 @@ package "MySQL-client%{product_suffix}" as well! %package -n MySQL-client%{product_suffix} Summary: MySQL - Client Group: Applications/Databases -Provides: MySQL-client -Conflicts: mysql mysql-advanced +Obsoletes: mysql mysql-advanced Obsoletes: MySQL-client Obsoletes: MySQL-client-classic MySQL-client-community MySQL-client-enterprise Obsoletes: MySQL-client-advanced MySQL-client-advanced-gpl MySQL-client-enterprise-gpl +Provides: MySQL-client +Provides: mysql %description -n MySQL-client%{product_suffix} This package contains the standard MySQL clients and administration tools. @@ -336,12 +338,12 @@ For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ Summary: MySQL - Test suite Group: Applications/Databases Requires: MySQL-client perl -Provides: MySQL-test Conflicts: mysql-test mysql-test-advanced Obsoletes: MySQL-test Obsoletes: mysql-bench MySQL-bench Obsoletes: MySQL-test-classic MySQL-test-community MySQL-test-enterprise Obsoletes: MySQL-test-advanced MySQL-test-advanced-gpl MySQL-test-enterprise-gpl +Provides: MySQL-test AutoReqProv: no %description -n MySQL-test%{product_suffix} @@ -353,11 +355,11 @@ For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ %package -n MySQL-devel%{product_suffix} Summary: MySQL - Development header files and libraries Group: Applications/Databases -Provides: MySQL-devel Conflicts: mysql-devel mysql-embedded-devel mysql-devel-advanced mysql-embedded-devel-advanced Obsoletes: MySQL-devel Obsoletes: MySQL-devel-classic MySQL-devel-community MySQL-devel-enterprise Obsoletes: MySQL-devel-advanced MySQL-devel-advanced-gpl MySQL-devel-enterprise-gpl +Provides: MySQL-devel %description -n MySQL-devel%{product_suffix} This package contains the development header files and libraries necessary @@ -369,12 +371,12 @@ For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ %package -n MySQL-shared%{product_suffix} Summary: MySQL - Shared libraries Group: Applications/Databases -Provides: MySQL-shared Obsoletes: MySQL-shared-standard MySQL-shared-pro Obsoletes: MySQL-shared-pro-cert MySQL-shared-pro-gpl Obsoletes: MySQL-shared-pro-gpl-cert MySQL-shared Obsoletes: MySQL-shared-classic MySQL-shared-community MySQL-shared-enterprise Obsoletes: MySQL-shared-advanced MySQL-shared-advanced-gpl MySQL-shared-enterprise-gpl +Provides: MySQL-shared %description -n MySQL-shared%{product_suffix} This package contains the shared libraries (*.so*) which certain languages @@ -385,12 +387,12 @@ and applications need to dynamically load and use MySQL. Summary: MySQL - Embedded library Group: Applications/Databases Requires: MySQL-devel -Provides: MySQL-embedded Conflicts: mysql-embedded mysql-embedded-advanced Obsoletes: MySQL-embedded Obsoletes: MySQL-embedded-pro Obsoletes: MySQL-embedded-classic MySQL-embedded-community MySQL-embedded-enterprise Obsoletes: MySQL-embedded-advanced MySQL-embedded-advanced-gpl MySQL-embedded-enterprise-gpl +Provides: MySQL-embedded %description -n MySQL-embedded%{product_suffix} This package contains the MySQL server as an embedded library. From 759519034e9f635b5ed30faa9230f3e41b5b19ad Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 28 Feb 2013 14:49:54 +0100 Subject: [PATCH 098/172] Updated release number in mysql.spec.sh file for br16298542 --- support-files/mysql.spec.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index ab26a7b6b8f..3a63e7082f6 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -30,7 +30,7 @@ %define mysqld_group mysql %define mysqldatadir /var/lib/mysql -%define release 1 +%define release 2 # # Macros we use which are not available in all supported versions of RPM From a4a50271a6717d48a7721da7231b05620e2a8519 Mon Sep 17 00:00:00 2001 From: Jon Olav Hauglid Date: Thu, 28 Feb 2013 14:52:47 +0100 Subject: [PATCH 099/172] Bug#16385711: HANDLER, CREATE TABLE IF NOT EXISTS, PROBLEM AFTER MYSQL_HA_FIND This problem occured if a prepared statement tried to create a table for which there already existed a view with the same name while a SQL handler was opened. Before DDL statements are executed, mysql_ha_rm_tables() is called to remove any matching tables from the internal list of opened SQL handler tables. This match was done on TABLE_LIST::db and TABLE_LIST::table_name. This is problematic for views (which use TABLE_LIST::view_db and TABLE_LIST::view_name) and anonymous derived tables. This patch fixes the problem by skipping TABLE_LISTs representing anonymous derived tables and using get_db_name()/get_table_name() which handles views when looking for SQL handler tables to remove. --- sql/sql_handler.cc | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/sql/sql_handler.cc b/sql/sql_handler.cc index e7973850194..5c0a7ec184b 100644 --- a/sql/sql_handler.cc +++ b/sql/sql_handler.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -820,10 +820,15 @@ static TABLE_LIST *mysql_ha_find(THD *thd, TABLE_LIST *tables) hash_tables= (TABLE_LIST*) my_hash_element(&thd->handler_tables_hash, i); for (tables= first; tables; tables= tables->next_local) { - if ((! *tables->db || - ! my_strcasecmp(&my_charset_latin1, hash_tables->db, tables->db)) && - ! my_strcasecmp(&my_charset_latin1, hash_tables->table_name, - tables->table_name)) + if (tables->is_anonymous_derived_table()) + continue; + if ((! *tables->get_db_name() || + ! my_strcasecmp(&my_charset_latin1, + hash_tables->get_db_name(), + tables->get_db_name())) && + ! my_strcasecmp(&my_charset_latin1, + hash_tables->get_table_name(), + tables->get_table_name())) break; } if (tables) From 0ebb72b50814c2ffec28bc9d0b02947c263d2e9b Mon Sep 17 00:00:00 2001 From: Venkatesh Duggirala Date: Fri, 1 Mar 2013 15:01:32 +0530 Subject: [PATCH 100/172] BUG#11753923-SQL THREAD CRASHES ON DISK FULL Fixing post push issue Simulator name used needs to be changed to make it work properly. Analysis: Debug control list addition (ListAddDel function dbug.c file) code was written in such a way that if new element is subset of already existing element, then the new element is not added. i.e., set @@global.debug = '+d,abcd', is existing in the list then you cannot add "a" or "ab" or "abc" in the list. --- mysys/errors.c | 4 ++-- mysys/my_write.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mysys/errors.c b/mysys/errors.c index b518b442d6b..ddd65836b30 100644 --- a/mysys/errors.c +++ b/mysys/errors.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -117,7 +117,7 @@ void wait_for_free_space(const char *filename, int errors) MY_WAIT_FOR_USER_TO_FIX_PANIC, MY_WAIT_GIVE_USER_A_MESSAGE * MY_WAIT_FOR_USER_TO_FIX_PANIC ); } - DBUG_EXECUTE_IF("simulate_file_write_error_once", + DBUG_EXECUTE_IF("simulate_no_free_space_error", { (void) sleep(1); return; diff --git a/mysys/my_write.c b/mysys/my_write.c index c474b86c60e..ef15e9a55b6 100644 --- a/mysys/my_write.c +++ b/mysys/my_write.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ size_t my_write(File Filedes, const uchar *Buffer, size_t Count, myf MyFlags) if (unlikely(!Count)) DBUG_RETURN(0); - DBUG_EXECUTE_IF ("simulate_file_write_error_once", + DBUG_EXECUTE_IF ("simulate_no_free_space_error", { DBUG_SET("+d,simulate_file_write_error");}); for (;;) { @@ -67,7 +67,7 @@ size_t my_write(File Filedes, const uchar *Buffer, size_t Count, myf MyFlags) { wait_for_free_space(my_filename(Filedes), errors); errors++; - DBUG_EXECUTE_IF("simulate_file_write_error_once", + DBUG_EXECUTE_IF("simulate_no_free_space_error", { DBUG_SET("-d,simulate_file_write_error");}); continue; } From 429e589256ac48f8b195360d858e7bbd1a3023e8 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 1 Mar 2013 14:11:24 +0100 Subject: [PATCH 101/172] Updated mysql.spec.sh file for br16298542 --- support-files/MySQL-shared-compat.spec.sh | 2 +- support-files/mysql.spec.sh | 19 +++++++------------ 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/support-files/MySQL-shared-compat.spec.sh b/support-files/MySQL-shared-compat.spec.sh index b8b27863b3d..9e9bc26e294 100644 --- a/support-files/MySQL-shared-compat.spec.sh +++ b/support-files/MySQL-shared-compat.spec.sh @@ -42,7 +42,7 @@ Autoreqprov: on Version: %{version_cur} Release: 1 BuildRoot: %{_tmppath}/%{name}-%{version}-build -Obsoletes: MySQL-shared, mysql-shared +Obsoletes: mysql-shared Provides: MySQL-shared Summary: MySQL shared client libraries for MySQL %{version}, %{version41}, %{version40} and %{version3} # We simply use the "MySQL-shared" subpackages as input sources instead of diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 3a63e7082f6..226ff5d0dfc 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -286,10 +286,9 @@ documentation and the manual for more information. Summary: MySQL: a very fast and reliable SQL database server Group: Applications/Databases Requires: %{distro_requires} -Obsoletes: MySQL MySQL-server Obsoletes: mysql mysql-server mysql-advanced mysql-server-advanced Obsoletes: MySQL-server-classic MySQL-server-community MySQL-server-enterprise -Obsoletes: MySQL-server-advanced MySQL-server-advanced-gpl MySQL-server-enterprise-gpl +Obsoletes: MySQL-server-advanced-gpl MySQL-server-enterprise-gpl Provides: msqlormysql MySQL MySQL-server Provides: mysql @@ -322,9 +321,8 @@ package "MySQL-client%{product_suffix}" as well! Summary: MySQL - Client Group: Applications/Databases Obsoletes: mysql mysql-advanced -Obsoletes: MySQL-client Obsoletes: MySQL-client-classic MySQL-client-community MySQL-client-enterprise -Obsoletes: MySQL-client-advanced MySQL-client-advanced-gpl MySQL-client-enterprise-gpl +Obsoletes: MySQL-client-advanced-gpl MySQL-client-enterprise-gpl Provides: MySQL-client Provides: mysql @@ -339,10 +337,9 @@ Summary: MySQL - Test suite Group: Applications/Databases Requires: MySQL-client perl Conflicts: mysql-test mysql-test-advanced -Obsoletes: MySQL-test Obsoletes: mysql-bench MySQL-bench Obsoletes: MySQL-test-classic MySQL-test-community MySQL-test-enterprise -Obsoletes: MySQL-test-advanced MySQL-test-advanced-gpl MySQL-test-enterprise-gpl +Obsoletes: MySQL-test-advanced-gpl MySQL-test-enterprise-gpl Provides: MySQL-test AutoReqProv: no @@ -356,9 +353,8 @@ For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ Summary: MySQL - Development header files and libraries Group: Applications/Databases Conflicts: mysql-devel mysql-embedded-devel mysql-devel-advanced mysql-embedded-devel-advanced -Obsoletes: MySQL-devel Obsoletes: MySQL-devel-classic MySQL-devel-community MySQL-devel-enterprise -Obsoletes: MySQL-devel-advanced MySQL-devel-advanced-gpl MySQL-devel-enterprise-gpl +Obsoletes: MySQL-devel-advanced-gpl MySQL-devel-enterprise-gpl Provides: MySQL-devel %description -n MySQL-devel%{product_suffix} @@ -373,9 +369,9 @@ Summary: MySQL - Shared libraries Group: Applications/Databases Obsoletes: MySQL-shared-standard MySQL-shared-pro Obsoletes: MySQL-shared-pro-cert MySQL-shared-pro-gpl -Obsoletes: MySQL-shared-pro-gpl-cert MySQL-shared +Obsoletes: MySQL-shared-pro-gpl-cert Obsoletes: MySQL-shared-classic MySQL-shared-community MySQL-shared-enterprise -Obsoletes: MySQL-shared-advanced MySQL-shared-advanced-gpl MySQL-shared-enterprise-gpl +Obsoletes: MySQL-shared-advanced-gpl MySQL-shared-enterprise-gpl Provides: MySQL-shared %description -n MySQL-shared%{product_suffix} @@ -388,10 +384,9 @@ Summary: MySQL - Embedded library Group: Applications/Databases Requires: MySQL-devel Conflicts: mysql-embedded mysql-embedded-advanced -Obsoletes: MySQL-embedded Obsoletes: MySQL-embedded-pro Obsoletes: MySQL-embedded-classic MySQL-embedded-community MySQL-embedded-enterprise -Obsoletes: MySQL-embedded-advanced MySQL-embedded-advanced-gpl MySQL-embedded-enterprise-gpl +Obsoletes: MySQL-embedded-advanced-gpl MySQL-embedded-enterprise-gpl Provides: MySQL-embedded %description -n MySQL-embedded%{product_suffix} From 8ac9ee0801ccfa5b4a8da7da1d4c8212dd137ab6 Mon Sep 17 00:00:00 2001 From: Balasubramanian Kandasamy Date: Tue, 5 Mar 2013 16:16:34 +0100 Subject: [PATCH 102/172] Updated Code for Bug#16235828 --- support-files/mysql.spec.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 226ff5d0dfc..b64796fa4ea 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -716,13 +716,16 @@ if [ -d $mysql_datadir ] ; then echo "MySQL RPM upgrade to version $NEW_VERSION" > $STATUS_FILE echo "'pre' step running at `date`" >> $STATUS_FILE echo >> $STATUS_FILE - echo "ERR file(s):" >> $STATUS_FILE - ls -ltr $mysql_datadir/*.err >> $STATUS_FILE - echo >> $STATUS_FILE - echo "Latest 'Version' line in latest file:" >> $STATUS_FILE - grep '^Version' `ls -tr $mysql_datadir/*.err | tail -1` | \ + fcount=`ls -ltr $mysql_datadir/*.err 2>/dev/null | wc -l` + if [ $fcount -gt 0 ] ; then + echo "ERR file(s):" >> $STATUS_FILE + ls -ltr $mysql_datadir/*.err >> $STATUS_FILE + echo >> $STATUS_FILE + echo "Latest 'Version' line in latest file:" >> $STATUS_FILE + grep '^Version' `ls -tr $mysql_datadir/*.err | tail -1` | \ tail -1 >> $STATUS_FILE - echo >> $STATUS_FILE + echo >> $STATUS_FILE + fi if [ -n "$SERVER_TO_START" ] ; then # There is only one PID file, race possibility ignored From f3abc36db615bf0f46da4f6b51e7cbc8b151b7cb Mon Sep 17 00:00:00 2001 From: Balasubramanian Kandasamy Date: Wed, 6 Mar 2013 16:33:26 +0100 Subject: [PATCH 103/172] Added fix for Bug#16445097 --- support-files/mysql.spec.sh | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index b64796fa4ea..fadfadf51c1 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -286,10 +286,13 @@ documentation and the manual for more information. Summary: MySQL: a very fast and reliable SQL database server Group: Applications/Databases Requires: %{distro_requires} +Obsoletes: MySQL < %{version}-%{release} +Obsoletes: MySQL-server < %{version}-%{release} +Obsoletes: MySQL-server-advanced < %{version}-%{release} Obsoletes: mysql mysql-server mysql-advanced mysql-server-advanced Obsoletes: MySQL-server-classic MySQL-server-community MySQL-server-enterprise Obsoletes: MySQL-server-advanced-gpl MySQL-server-enterprise-gpl -Provides: msqlormysql MySQL MySQL-server +Provides: msqlormysql MySQL MySQL-server MySQL-server-advanced Provides: mysql %description -n MySQL-server%{product_suffix} @@ -321,9 +324,11 @@ package "MySQL-client%{product_suffix}" as well! Summary: MySQL - Client Group: Applications/Databases Obsoletes: mysql mysql-advanced +Obsoletes: MySQL-client < %{version}-%{release} +Obsoletes: MySQL-client-advanced < %{version}-%{release} Obsoletes: MySQL-client-classic MySQL-client-community MySQL-client-enterprise Obsoletes: MySQL-client-advanced-gpl MySQL-client-enterprise-gpl -Provides: MySQL-client +Provides: MySQL-client MySQL-client-advanced Provides: mysql %description -n MySQL-client%{product_suffix} @@ -338,9 +343,11 @@ Group: Applications/Databases Requires: MySQL-client perl Conflicts: mysql-test mysql-test-advanced Obsoletes: mysql-bench MySQL-bench +Obsoletes: MySQL-test < %{version}-%{release} +Obsoletes: MySQL-test-advanced < %{version}-%{release} Obsoletes: MySQL-test-classic MySQL-test-community MySQL-test-enterprise Obsoletes: MySQL-test-advanced-gpl MySQL-test-enterprise-gpl -Provides: MySQL-test +Provides: MySQL-test MySQL-test-advanced AutoReqProv: no %description -n MySQL-test%{product_suffix} @@ -353,9 +360,11 @@ For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ Summary: MySQL - Development header files and libraries Group: Applications/Databases Conflicts: mysql-devel mysql-embedded-devel mysql-devel-advanced mysql-embedded-devel-advanced +Obsoletes: MySQL-devel < %{version}-%{release} +Obsoletes: MySQL-devel-advanced < %{version}-%{release} Obsoletes: MySQL-devel-classic MySQL-devel-community MySQL-devel-enterprise Obsoletes: MySQL-devel-advanced-gpl MySQL-devel-enterprise-gpl -Provides: MySQL-devel +Provides: MySQL-devel MySQL-devel-advanced %description -n MySQL-devel%{product_suffix} This package contains the development header files and libraries necessary @@ -369,10 +378,12 @@ Summary: MySQL - Shared libraries Group: Applications/Databases Obsoletes: MySQL-shared-standard MySQL-shared-pro Obsoletes: MySQL-shared-pro-cert MySQL-shared-pro-gpl +Obsoletes: MySQL-shared < %{version}-%{release} +Obsoletes: MySQL-shared-advanced < %{version}-%{release} Obsoletes: MySQL-shared-pro-gpl-cert Obsoletes: MySQL-shared-classic MySQL-shared-community MySQL-shared-enterprise Obsoletes: MySQL-shared-advanced-gpl MySQL-shared-enterprise-gpl -Provides: MySQL-shared +Provides: MySQL-shared MySQL-shared-advanced %description -n MySQL-shared%{product_suffix} This package contains the shared libraries (*.so*) which certain languages @@ -385,9 +396,11 @@ Group: Applications/Databases Requires: MySQL-devel Conflicts: mysql-embedded mysql-embedded-advanced Obsoletes: MySQL-embedded-pro +Obsoletes: MySQL-embedded < %{version}-%{release} +Obsoletes: MySQL-embedded-advanced < %{version}-%{release} Obsoletes: MySQL-embedded-classic MySQL-embedded-community MySQL-embedded-enterprise Obsoletes: MySQL-embedded-advanced-gpl MySQL-embedded-enterprise-gpl -Provides: MySQL-embedded +Provides: MySQL-embedded MySQL-embedded-advanced %description -n MySQL-embedded%{product_suffix} This package contains the MySQL server as an embedded library. From b9f88d8ed30ae7c2f26a99ee81e5a15c9e97643e Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 8 Mar 2013 15:51:20 +0530 Subject: [PATCH 104/172] From 061f3d1b53a6d93f69391ad81fcf5c2ebabed671 Mon Sep 17 00:00:00 2001 From: Balasubramanian Kandasamy Date: Thu, 21 Mar 2013 14:59:57 +0100 Subject: [PATCH 105/172] Added SuSE RPM Build fix --- support-files/mysql.spec.sh | 158 ++++++++++++++++++++++++------------ 1 file changed, 106 insertions(+), 52 deletions(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index b5bee9915b7..39630c15ef0 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -247,9 +247,9 @@ Distribution: %{distro_description} License: Copyright (c) 2000, @MYSQL_COPYRIGHT_YEAR@, %{mysql_vendor}. All rights reserved. Under %{license_type} license as shown in the Description field. Source: http://www.mysql.com/Downloads/MySQL-@MYSQL_BASE_VERSION@/%{src_dir}.tar.gz URL: http://www.mysql.com/ -Packager: MySQL Release Engineering +Packager: MySQL Release Engineering Vendor: %{mysql_vendor} -Provides: msqlormysql MySQL-server mysql +Provides: msqlormysql MySQL-server BuildRequires: %{distro_buildreq} # Regression tests may take a long time, override the default to skip them @@ -283,17 +283,25 @@ documentation and the manual for more information. ############################################################################## %package -n MySQL-server%{product_suffix} -Summary: MySQL: a very fast and reliable SQL database server -Group: Applications/Databases -Requires: %{distro_requires} +Summary: MySQL: a very fast and reliable SQL database server +Group: Applications/Databases +Requires: %{distro_requires} +%if %{defined susever} +Provides: msqlormysql MySQL MySQL-server +Conflicts: mysql mysql-server mysql-advanced mysql-server-advanced +Obsoletes: MySQL MySQL-server +Obsoletes: MySQL-server-classic MySQL-server-community MySQL-server-enterprise +Obsoletes: MySQL-server-advanced MySQL-server-advanced-gpl MySQL-server-enterprise-gpl +%else Obsoletes: MySQL < %{version}-%{release} Obsoletes: MySQL-server < %{version}-%{release} Obsoletes: MySQL-server-advanced < %{version}-%{release} -Obsoletes: mysql mysql-server mysql-advanced mysql-server-advanced -Obsoletes: MySQL-server-classic MySQL-server-community MySQL-server-enterprise -Obsoletes: MySQL-server-advanced-gpl MySQL-server-enterprise-gpl -Provides: msqlormysql MySQL MySQL-server MySQL-server-advanced -Provides: mysql +Obsoletes: mysql mysql-server mysql-advanced mysql-server-advanced +Obsoletes: MySQL-server-classic MySQL-server-community MySQL-server-enterprise +Obsoletes: MySQL-server-advanced-gpl MySQL-server-enterprise-gpl +Provides: msqlormysql MySQL MySQL-server MySQL-server-advanced +Provides: mysql +%endif %description -n MySQL-server%{product_suffix} The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, @@ -321,15 +329,23 @@ package "MySQL-client%{product_suffix}" as well! # ---------------------------------------------------------------------------- %package -n MySQL-client%{product_suffix} -Summary: MySQL - Client -Group: Applications/Databases -Obsoletes: mysql mysql-advanced -Obsoletes: MySQL-client < %{version}-%{release} -Obsoletes: MySQL-client-advanced < %{version}-%{release} -Obsoletes: MySQL-client-classic MySQL-client-community MySQL-client-enterprise -Obsoletes: MySQL-client-advanced-gpl MySQL-client-enterprise-gpl -Provides: MySQL-client MySQL-client-advanced -Provides: mysql +Summary: MySQL - Client +Group: Applications/Databases +%if %{defined susever} +Provides: MySQL-client +Conflicts: mysql mysql-advanced +Obsoletes: MySQL-client +Obsoletes: MySQL-client-classic MySQL-client-community MySQL-client-enterprise +Obsoletes: MySQL-client-advanced MySQL-client-advanced-gpl MySQL-client-enterprise-gpl +%else +Obsoletes: mysql mysql-advanced +Obsoletes: MySQL-client < %{version}-%{release} +Obsoletes: MySQL-client-advanced < %{version}-%{release} +Obsoletes: MySQL-client-classic MySQL-client-community MySQL-client-enterprise +Obsoletes: MySQL-client-advanced-gpl MySQL-client-enterprise-gpl +Provides: MySQL-client MySQL-client-advanced +Provides: mysql +%endif %description -n MySQL-client%{product_suffix} This package contains the standard MySQL clients and administration tools. @@ -338,17 +354,28 @@ For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ # ---------------------------------------------------------------------------- %package -n MySQL-test%{product_suffix} -Summary: MySQL - Test suite -Group: Applications/Databases -Requires: MySQL-client perl -Conflicts: mysql-test mysql-test-advanced -Obsoletes: mysql-bench MySQL-bench +Summary: MySQL - Test suite +Group: Applications/Databases +%if %{defined susever} +Requires: MySQL-client perl +Provides: MySQL-test +Conflicts: mysql-test mysql-test-advanced +Obsoletes: MySQL-test +Obsoletes: mysql-bench MySQL-bench +Obsoletes: MySQL-test-classic MySQL-test-community MySQL-test-enterprise +Obsoletes: MySQL-test-advanced MySQL-test-advanced-gpl MySQL-test-enterprise-gpl +AutoReqProv: no +%else +Requires: MySQL-client perl +Conflicts: mysql-test mysql-test-advanced +Obsoletes: mysql-bench MySQL-bench Obsoletes: MySQL-test < %{version}-%{release} Obsoletes: MySQL-test-advanced < %{version}-%{release} -Obsoletes: MySQL-test-classic MySQL-test-community MySQL-test-enterprise -Obsoletes: MySQL-test-advanced-gpl MySQL-test-enterprise-gpl -Provides: MySQL-test MySQL-test-advanced -AutoReqProv: no +Obsoletes: MySQL-test-classic MySQL-test-community MySQL-test-enterprise +Obsoletes: MySQL-test-advanced-gpl MySQL-test-enterprise-gpl +Provides: MySQL-test MySQL-test-advanced +AutoReqProv: no +%endif %description -n MySQL-test%{product_suffix} This package contains the MySQL regression test suite. @@ -357,14 +384,22 @@ For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ # ---------------------------------------------------------------------------- %package -n MySQL-devel%{product_suffix} -Summary: MySQL - Development header files and libraries -Group: Applications/Databases -Conflicts: mysql-devel mysql-embedded-devel mysql-devel-advanced mysql-embedded-devel-advanced +Summary: MySQL - Development header files and libraries +Group: Applications/Databases +%if %{defined susever} +Provides: MySQL-devel +Conflicts: mysql-devel mysql-embedded-devel mysql-devel-advanced mysql-embedded-devel-advanced +Obsoletes: MySQL-devel +Obsoletes: MySQL-devel-classic MySQL-devel-community MySQL-devel-enterprise +Obsoletes: MySQL-devel-advanced MySQL-devel-advanced-gpl MySQL-devel-enterprise-gpl +%else +Conflicts: mysql-devel mysql-embedded-devel mysql-devel-advanced mysql-embedded-devel-advanced Obsoletes: MySQL-devel < %{version}-%{release} Obsoletes: MySQL-devel-advanced < %{version}-%{release} -Obsoletes: MySQL-devel-classic MySQL-devel-community MySQL-devel-enterprise -Obsoletes: MySQL-devel-advanced-gpl MySQL-devel-enterprise-gpl -Provides: MySQL-devel MySQL-devel-advanced +Obsoletes: MySQL-devel-classic MySQL-devel-community MySQL-devel-enterprise +Obsoletes: MySQL-devel-advanced-gpl MySQL-devel-enterprise-gpl +Provides: MySQL-devel MySQL-devel-advanced +%endif %description -n MySQL-devel%{product_suffix} This package contains the development header files and libraries necessary @@ -374,16 +409,25 @@ For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ # ---------------------------------------------------------------------------- %package -n MySQL-shared%{product_suffix} -Summary: MySQL - Shared libraries -Group: Applications/Databases -Obsoletes: MySQL-shared-standard MySQL-shared-pro -Obsoletes: MySQL-shared-pro-cert MySQL-shared-pro-gpl -Obsoletes: MySQL-shared < %{version}-%{release} +Summary: MySQL - Shared libraries +Group: Applications/Databases +%if %{defined susever} +Provides: MySQL-shared +Obsoletes: MySQL-shared-standard MySQL-shared-pro +Obsoletes: MySQL-shared-pro-cert MySQL-shared-pro-gpl +Obsoletes: MySQL-shared-pro-gpl-cert MySQL-shared +Obsoletes: MySQL-shared-classic MySQL-shared-community MySQL-shared-enterprise +Obsoletes: MySQL-shared-advanced MySQL-shared-advanced-gpl MySQL-shared-enterprise-gpl +%else +Obsoletes: MySQL-shared-standard MySQL-shared-pro +Obsoletes: MySQL-shared-pro-cert MySQL-shared-pro-gpl +Obsoletes: MySQL-shared < %{version}-%{release} Obsoletes: MySQL-shared-advanced < %{version}-%{release} -Obsoletes: MySQL-shared-pro-gpl-cert -Obsoletes: MySQL-shared-classic MySQL-shared-community MySQL-shared-enterprise -Obsoletes: MySQL-shared-advanced-gpl MySQL-shared-enterprise-gpl -Provides: MySQL-shared MySQL-shared-advanced +Obsoletes: MySQL-shared-pro-gpl-cert +Obsoletes: MySQL-shared-classic MySQL-shared-community MySQL-shared-enterprise +Obsoletes: MySQL-shared-advanced-gpl MySQL-shared-enterprise-gpl +Provides: MySQL-shared MySQL-shared-advanced +%endif %description -n MySQL-shared%{product_suffix} This package contains the shared libraries (*.so*) which certain languages @@ -391,16 +435,26 @@ and applications need to dynamically load and use MySQL. # ---------------------------------------------------------------------------- %package -n MySQL-embedded%{product_suffix} -Summary: MySQL - Embedded library -Group: Applications/Databases -Requires: MySQL-devel -Conflicts: mysql-embedded mysql-embedded-advanced -Obsoletes: MySQL-embedded-pro -Obsoletes: MySQL-embedded < %{version}-%{release} +Summary: MySQL - Embedded library +Group: Applications/Databases +%if %{defined susever} +Requires: MySQL-devel +Provides: MySQL-embedded +Conflicts: mysql-embedded mysql-embedded-advanced +Obsoletes: MySQL-embedded +Obsoletes: MySQL-embedded-pro +Obsoletes: MySQL-embedded-classic MySQL-embedded-community MySQL-embedded-enterprise +Obsoletes: MySQL-embedded-advanced MySQL-embedded-advanced-gpl MySQL-embedded-enterprise-gpl +%else +Requires: MySQL-devel +Conflicts: mysql-embedded mysql-embedded-advanced +Obsoletes: MySQL-embedded-pro +Obsoletes: MySQL-embedded < %{version}-%{release} Obsoletes: MySQL-embedded-advanced < %{version}-%{release} -Obsoletes: MySQL-embedded-classic MySQL-embedded-community MySQL-embedded-enterprise -Obsoletes: MySQL-embedded-advanced-gpl MySQL-embedded-enterprise-gpl -Provides: MySQL-embedded MySQL-embedded-advanced +Obsoletes: MySQL-embedded-classic MySQL-embedded-community MySQL-embedded-enterprise +Obsoletes: MySQL-embedded-advanced-gpl MySQL-embedded-enterprise-gpl +Provides: MySQL-embedded MySQL-embedded-advanced +%endif %description -n MySQL-embedded%{product_suffix} This package contains the MySQL server as an embedded library. From 5a781ff2ad6a55511f628c424a526936caf2c1c6 Mon Sep 17 00:00:00 2001 From: Balasubramanian Kandasamy Date: Mon, 25 Mar 2013 13:50:21 +0100 Subject: [PATCH 106/172] Reverted MySQL Release Engineering mail address --- support-files/mysql.spec.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 39630c15ef0..b439d2c1956 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -247,7 +247,7 @@ Distribution: %{distro_description} License: Copyright (c) 2000, @MYSQL_COPYRIGHT_YEAR@, %{mysql_vendor}. All rights reserved. Under %{license_type} license as shown in the Description field. Source: http://www.mysql.com/Downloads/MySQL-@MYSQL_BASE_VERSION@/%{src_dir}.tar.gz URL: http://www.mysql.com/ -Packager: MySQL Release Engineering +Packager: MySQL Release Engineering Vendor: %{mysql_vendor} Provides: msqlormysql MySQL-server BuildRequires: %{distro_buildreq} From 80c0891588dd8aef2a0e08864b00067ffd9de5ce Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 9 Apr 2013 09:58:51 +0300 Subject: [PATCH 107/172] MDEV-4326 fix. Removed "optimization" which caused preoblems on second execution of PS with string parameter in LIMIT clause. Fixed test_bug43560 to be able to skipp it if connection is UNIX socket. --- sql/sql_prepare.cc | 2 +- tests/mysql_client_test.c | 110 +++++++++++++++++++++++++++++++++++++- 2 files changed, 110 insertions(+), 2 deletions(-) diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 0c1c33dcee0..733fc00bf20 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -787,7 +787,7 @@ static bool insert_params_with_log(Prepared_statement *stmt, uchar *null_array, if (param->state == Item_param::NO_VALUE) DBUG_RETURN(1); - if (param->limit_clause_param && param->item_type != Item::INT_ITEM) + if (param->limit_clause_param) { param->set_int(param->val_int(), MY_INT64_NUM_DECIMAL_DIGITS); param->item_type= Item::INT_ITEM; diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 462575ac456..0e18ca12c42 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -16750,7 +16750,11 @@ static void test_bug43560(void) fprintf(stdout, "Skipping test_bug43560: server not DEBUG version\n"); DBUG_VOID_RETURN; } - + if (opt_unix_socket) + { + fprintf(stdout, "Skipping test_bug43560: connected via UNIX socket\n"); + DBUG_VOID_RETURN; + } /* Set up a separate connection for this test to avoid messing up the general MYSQL object used in other subtests. Use TCP protocol to avoid @@ -17541,6 +17545,109 @@ static void test_bug13001491() myquery(rc); } +static void test_mdev4326() +{ + MYSQL_STMT *stmt; + MYSQL_BIND bind; + char query[]= "SELECT * FROM mysql.user LIMIT ?"; + char str_data[]= "1"; + unsigned long length= 0; + int int_data= 1; + int rc, count; + my_bool is_null= 0; + my_bool error= 0; + myheader("test_mdev4326"); + + rc= mysql_change_user(mysql, opt_user, opt_password, "mysql"); + myquery(rc); + + rc= mysql_query(mysql, "SET GLOBAL general_log = 1"); + myquery(rc); + + stmt= mysql_stmt_init(mysql); + check_stmt(stmt); + + /* Numeric parameter test */ + + rc= mysql_stmt_prepare(stmt, query, strlen(query)); + check_execute(stmt, rc); + check_stmt(stmt); + verify_param_count(stmt, 1); + + memset((char *)&bind, 0, sizeof(bind)); + bind.buffer_type= MYSQL_TYPE_LONG; + bind.buffer= (char *)&int_data; + bind.is_null= &is_null; + bind.length= &length; + bind.error= &error; + + rc= mysql_stmt_bind_param(stmt, &bind); + check_execute(stmt, rc); + rc= mysql_stmt_execute(stmt); + check_execute(stmt, rc); + count= 0; + while (!(rc= mysql_stmt_fetch(stmt))) + count++; + DIE_UNLESS(count == 1); + rc= mysql_stmt_execute(stmt); + check_execute(stmt, rc); + count= 0; + while (!(rc= mysql_stmt_fetch(stmt))) + count++; + DIE_UNLESS(count == 1); + int_data= 0; + rc= mysql_stmt_execute(stmt); + check_execute(stmt, rc); + count= 0; + while (!(rc= mysql_stmt_fetch(stmt))) + count++; + DIE_UNLESS(count == 0); + rc= mysql_stmt_close(stmt); + check_execute(stmt, rc); + + /* String parameter test */ + + stmt= mysql_stmt_init(mysql); + rc= mysql_stmt_prepare(stmt, query, strlen(query)); + check_execute(stmt, rc); + check_stmt(stmt); + verify_param_count(stmt, 1); + + memset((char *)&bind, 0, sizeof(bind)); + bind.buffer_type= MYSQL_TYPE_STRING; + bind.buffer= (char *)str_data; + length= bind.buffer_length= sizeof(str_data); + bind.is_null= &is_null; + bind.length= &length; + bind.error= &error; + + rc= mysql_stmt_bind_param(stmt, &bind); + check_execute(stmt, rc); + rc= mysql_stmt_execute(stmt); + check_execute(stmt, rc); + count= 0; + while (!(rc= mysql_stmt_fetch(stmt))) + count++; + DIE_UNLESS(count == 1); + rc= mysql_stmt_execute(stmt); + check_execute(stmt, rc); + count= 0; + while (!(rc= mysql_stmt_fetch(stmt))) + count++; + DIE_UNLESS(count == 1); + str_data[0]= '0'; + rc= mysql_stmt_execute(stmt); + check_execute(stmt, rc); + count= 0; + while (!(rc= mysql_stmt_fetch(stmt))) + count++; + DIE_UNLESS(count == 0); + rc= mysql_stmt_close(stmt); + check_execute(stmt, rc); + + rc= mysql_change_user(mysql, opt_user, opt_password, current_db); + myquery(rc); +} static struct my_tests_st my_tests[]= { { "disable_query_logs", disable_query_logs }, @@ -17790,6 +17897,7 @@ static struct my_tests_st my_tests[]= { { "test_bug58036", test_bug58036 }, { "test_bug56976", test_bug56976 }, { "test_bug13001491", test_bug13001491 }, + { "test_mdev4326", test_mdev4326 }, { 0, 0 } }; From e5055e22f1f311fa48457cfcc97b72e93a37329f Mon Sep 17 00:00:00 2001 From: Balasubramanian Kandasamy Date: Fri, 12 Apr 2013 12:11:38 +0200 Subject: [PATCH 108/172] Updated mysql.spec.sh for rpm-uln --- packaging/rpm-uln/mysql.spec.sh | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/packaging/rpm-uln/mysql.spec.sh b/packaging/rpm-uln/mysql.spec.sh index 3e2c5c3f11c..ec195bc9e16 100644 --- a/packaging/rpm-uln/mysql.spec.sh +++ b/packaging/rpm-uln/mysql.spec.sh @@ -268,11 +268,12 @@ Requires: bash Provides: mysql # MySQL (with caps) is upstream's spelling of their own RPMs for mysql -Conflicts: MySQL +Obsoletes: MySQL # mysql-cluster used to be built from this SRPM, but no more Obsoletes: mysql-cluster < 5.1.44 # We need cross-product "Obsoletes:" to allow cross-product upgrades: -Obsoletes: mysql mysql-advanced +Obsoletes: mysql < %{version}-%{release} +Obsoletes: mysql-advanced < %{version}-%{release} # Working around perl dependency checking bug in rpm FTTB. Remove later. %global __perl_requires %{SOURCE999} @@ -295,8 +296,9 @@ further info. Summary: The shared libraries required for MySQL clients Group: Applications/Databases Requires: /sbin/ldconfig +Obsoletes: mysql-libs < %{version}-%{release} +Obsoletes: mysql-libs-advanced < %{version}-%{release} Provides: mysql-libs -Obsoletes: mysql-libs mysql-libs-advanced %description -n mysql-libs%{product_suffix} The mysql-libs package provides the essential shared libraries for any @@ -318,9 +320,10 @@ Requires(preun): initscripts Requires(postun): initscripts # mysqlhotcopy needs DBI/DBD support Requires: perl-DBI, perl-DBD-MySQL +Obsoletes: MySQL-server +Obsoletes: mysql-server < %{version}-%{release} +Obsoletes: mysql-server-advanced < %{version}-%{release} Provides: mysql-server -Conflicts: MySQL-server -Obsoletes: mysql-server mysql-server-advanced %description -n mysql-server%{product_suffix} MySQL is a multi-user, multi-threaded SQL database server. MySQL is a @@ -334,9 +337,10 @@ Summary: Files for development of MySQL applications Group: Applications/Databases Requires: mysql%{product_suffix} = %{version}-%{release} Requires: openssl-devel +Obsoletes: MySQL-devel +Obsoletes: mysql-devel < %{version}-%{release} +Obsoletes: mysql-devel-advanced < %{version}-%{release} Provides: mysql-devel -Conflicts: MySQL-devel -Obsoletes: mysql-devel mysql-devel-advanced %description -n mysql-devel%{product_suffix} MySQL is a multi-user, multi-threaded SQL database server. This @@ -347,8 +351,9 @@ developing MySQL client applications. Summary: MySQL as an embeddable library Group: Applications/Databases +Obsoletes: mysql-embedded < %{version}-%{release} +Obsoletes: mysql-embedded-advanced < %{version}-%{release} Provides: mysql-embedded -Obsoletes: mysql-embedded mysql-embedded-advanced %description -n mysql-embedded%{product_suffix} MySQL is a multi-user, multi-threaded SQL database server. This @@ -362,8 +367,9 @@ Summary: Development files for MySQL as an embeddable library Group: Applications/Databases Requires: mysql-embedded%{product_suffix} = %{version}-%{release} Requires: mysql-devel%{product_suffix} = %{version}-%{release} +Obsoletes: mysql-embedded-devel < %{version}-%{release} +Obsoletes: mysql-embedded-devel-advanced < %{version}-%{release} Provides: mysql-embedded-devel -Obsoletes: mysql-embedded-devel mysql-embedded-devel-advanced %description -n mysql-embedded-devel%{product_suffix} MySQL is a multi-user, multi-threaded SQL database server. This @@ -376,9 +382,10 @@ Summary: The test suite distributed with MySQL Group: Applications/Databases Requires: mysql%{product_suffix} = %{version}-%{release} Requires: mysql-server%{product_suffix} = %{version}-%{release} +Obsoletes: MySQL-test +Obsoletes: mysql-test < %{version}-%{release} +Obsoletes: mysql-test-advanced < %{version}-%{release} Provides: mysql-test -Conflicts: MySQL-test -Obsoletes: mysql-test mysql-test-advanced %description -n mysql-test%{product_suffix} MySQL is a multi-user, multi-threaded SQL database server. This From 07315d36030bd1cbe6acfeb3e8f60c49ba876a10 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 17 Apr 2013 19:42:34 +0200 Subject: [PATCH 109/172] strmake_buf(X,Y) helper, equivalent to strmake(X,Y,sizeof(X)-1) with a bit of lame protection against abuse. --- client/mysql.cc | 22 +++++++++--------- client/mysqltest.cc | 3 +-- include/m_string.h | 9 ++++++++ libmysqld/lib_sql.cc | 13 +++++------ mysys/mf_format.c | 2 +- mysys/my_thr_init.c | 2 +- sql-common/client.c | 4 ++-- sql/handler.cc | 2 +- sql/item.cc | 2 +- sql/log.cc | 27 +++++++++------------- sql/mysql_install_db.cc | 2 +- sql/mysqld.cc | 18 +++++++-------- sql/rpl_rli.cc | 18 +++++---------- sql/slave.cc | 16 +++++-------- sql/sql_acl.cc | 17 +++++++------- sql/sql_base.cc | 4 ++-- sql/sql_class.cc | 2 +- sql/sql_connect.cc | 2 +- sql/sql_error.cc | 4 ++-- sql/sql_insert.cc | 3 +-- sql/sql_plugin_compat.h | 4 ++-- sql/sql_repl.cc | 35 ++++++++++++----------------- sql/tztime.cc | 4 ++-- storage/federated/ha_federated.cc | 2 +- storage/federatedx/ha_federatedx.cc | 2 +- storage/maria/ma_recovery.c | 2 +- storage/myisammrg/ha_myisammrg.cc | 2 +- 27 files changed, 102 insertions(+), 121 deletions(-) diff --git a/client/mysql.cc b/client/mysql.cc index ad792abc23f..3cd078ac1ce 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -1635,7 +1635,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), { switch(optid) { case OPT_CHARSETS_DIR: - strmake(mysql_charsets_dir, argument, sizeof(mysql_charsets_dir) - 1); + strmake_buf(mysql_charsets_dir, argument); charsets_dir = mysql_charsets_dir; break; case OPT_DELIMITER: @@ -1648,7 +1648,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), /* Check that delimiter does not contain a backslash */ if (!strstr(argument, "\\")) { - strmake(delimiter, argument, sizeof(delimiter) - 1); + strmake_buf(delimiter, argument); } else { @@ -1680,7 +1680,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), if (argument && strlen(argument)) { default_pager_set= 1; - strmake(pager, argument, sizeof(pager) - 1); + strmake_buf(pager, argument); strmov(default_pager, pager); } else if (default_pager_set) @@ -2961,7 +2961,7 @@ com_charset(String *buffer __attribute__((unused)), char *line) { char buff[256], *param; CHARSET_INFO * new_cs; - strmake(buff, line, sizeof(buff) - 1); + strmake_buf(buff, line); param= get_arg(buff, 0); if (!param || !*param) { @@ -3198,7 +3198,7 @@ static void init_tee(const char *file_name) return; } OUTFILE = new_outfile; - strmake(outfile, file_name, FN_REFLEN-1); + strmake_buf(outfile, file_name); tee_fprintf(stdout, "Logging to file '%s'\n", file_name); opt_outfile= 1; return; @@ -3827,7 +3827,7 @@ com_tee(String *buffer __attribute__((unused)), /* eliminate the spaces before the parameters */ while (my_isspace(charset_info,*param)) param++; - end= strmake(file_name, param, sizeof(file_name) - 1); + end= strmake_buf(file_name, param); /* remove end space from command line */ while (end > file_name && (my_isspace(charset_info,end[-1]) || my_iscntrl(charset_info,end[-1]))) @@ -3888,7 +3888,7 @@ com_pager(String *buffer __attribute__((unused)), } else { - end= strmake(pager_name, param, sizeof(pager_name)-1); + end= strmake_buf(pager_name, param); while (end > pager_name && (my_isspace(charset_info,end[-1]) || my_iscntrl(charset_info,end[-1]))) end--; @@ -4101,7 +4101,7 @@ static int com_source(String *buffer __attribute__((unused)), INFO_ERROR, 0); while (my_isspace(charset_info,*param)) param++; - end=strmake(source_name,param,sizeof(source_name)-1); + end=strmake_buf(source_name, param); while (end > source_name && (my_isspace(charset_info,end[-1]) || my_iscntrl(charset_info,end[-1]))) end--; @@ -4154,7 +4154,7 @@ com_delimiter(String *buffer __attribute__((unused)), char *line) { char buff[256], *tmp; - strmake(buff, line, sizeof(buff) - 1); + strmake_buf(buff, line); tmp= get_arg(buff, 0); if (!tmp || !*tmp) @@ -4171,7 +4171,7 @@ com_delimiter(String *buffer __attribute__((unused)), char *line) return 0; } } - strmake(delimiter, tmp, sizeof(delimiter) - 1); + strmake_buf(delimiter, tmp); delimiter_length= (int)strlen(delimiter); delimiter_str= delimiter; return 0; @@ -4185,7 +4185,7 @@ com_use(String *buffer __attribute__((unused)), char *line) int select_db; bzero(buff, sizeof(buff)); - strmake(buff, line, sizeof(buff) - 1); + strmake_buf(buff, line); tmp= get_arg(buff, 0); if (!tmp || !*tmp) { diff --git a/client/mysqltest.cc b/client/mysqltest.cc index 8c6c1cb3408..2dde607a016 100644 --- a/client/mysqltest.cc +++ b/client/mysqltest.cc @@ -6335,8 +6335,7 @@ void do_delimiter(struct st_command* command) if (!(*p)) die("Can't set empty delimiter"); - strmake(delimiter, p, sizeof(delimiter) - 1); - delimiter_length= strlen(delimiter); + delimiter_length= strmake_buf(delimiter, p) - delimiter; DBUG_PRINT("exit", ("delimiter: %s", delimiter)); command->last_argument= p + delimiter_length; diff --git a/include/m_string.h b/include/m_string.h index 9efa0376942..990f78eb555 100644 --- a/include/m_string.h +++ b/include/m_string.h @@ -108,6 +108,15 @@ extern char *strcend(const char *, pchar); extern char *strfill(char * s,size_t len,pchar fill); extern char *strmake(char *dst,const char *src,size_t length); +#if !defined(__GNUC__) || (__GNUC__ < 4) +#define strmake_buf(D,S) strmake(D, S, sizeof(D) - 1) +#else +#define strmake_buf(D,S) ({ \ + compile_time_assert(sizeof(D) != sizeof(char*)); \ + strmake(D, S, sizeof(D) - 1); \ + }) +#endif + #ifndef strmov extern char *strmov(char *dst,const char *src); #endif diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 298907b2644..e73fe4b8b77 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -90,7 +90,7 @@ void embedded_get_error(MYSQL *mysql, MYSQL_DATA *data) NET *net= &mysql->net; struct embedded_query_result *ei= data->embedded_info; net->last_errno= ei->last_errno; - strmake(net->last_error, ei->info, sizeof(net->last_error)-1); + strmake_buf(net->last_error, ei->info); memcpy(net->sqlstate, ei->sqlstate, sizeof(net->sqlstate)); mysql->server_status= ei->server_status; my_free(data); @@ -703,8 +703,8 @@ int check_embedded_connection(MYSQL *mysql, const char *db) thd->update_charset(); Security_context *sctx= thd->security_ctx; sctx->host_or_ip= sctx->host= (char*) my_localhost; - strmake(sctx->priv_host, (char*) my_localhost, MAX_HOSTNAME-1); - strmake(sctx->priv_user, mysql->user, USERNAME_LENGTH-1); + strmake_buf(sctx->priv_host, (char*) my_localhost); + strmake_buf(sctx->priv_user, mysql->user); sctx->user= my_strdup(mysql->user, MYF(0)); sctx->proxy_user[0]= 0; sctx->master_access= GLOBAL_ACLS; // Full rights @@ -772,7 +772,7 @@ int check_embedded_connection(MYSQL *mysql, const char *db) return 0; err: - strmake(net->last_error, thd->main_da.message(), sizeof(net->last_error)-1); + strmake_buf(net->last_error, thd->main_da.message()); memcpy(net->sqlstate, mysql_errno_to_sqlstate(thd->main_da.sql_errno()), sizeof(net->sqlstate)-1); @@ -1119,8 +1119,7 @@ net_send_ok(THD *thd, data->embedded_info->affected_rows= affected_rows; data->embedded_info->insert_id= id; if (message) - strmake(data->embedded_info->info, message, - sizeof(data->embedded_info->info)-1); + strmake_buf(data->embedded_info->info, message); bool error= write_eof_packet(thd, server_status, statement_warn_count); thd->cur_data= 0; @@ -1171,7 +1170,7 @@ bool net_send_error_packet(THD *thd, uint sql_errno, const char *err, err, strlen(err), system_charset_info, &error); /* Converted error message is always null-terminated. */ - strmake(ei->info, converted_err, sizeof(ei->info)-1); + strmake_buf(ei->info, converted_err); strmov(ei->sqlstate, sqlstate); ei->server_status= thd->server_status; thd->cur_data= 0; diff --git a/mysys/mf_format.c b/mysys/mf_format.c index 2b2356c08df..d20ce882459 100644 --- a/mysys/mf_format.c +++ b/mysys/mf_format.c @@ -46,7 +46,7 @@ char * fn_format(char * to, const char *name, const char *dir, else if ((flag & MY_RELATIVE_PATH) && !test_if_hard_path(dev)) { /* Put 'dir' before the given path */ - strmake(buff,dev,sizeof(buff)-1); + strmake_buf(buff, dev); pos=convert_dirname(dev,dir,NullS); strmake(pos,buff,sizeof(buff)-1- (int) (pos-dev)); } diff --git a/mysys/my_thr_init.c b/mysys/my_thr_init.c index ac16189f3a7..b9ad379f4c4 100644 --- a/mysys/my_thr_init.c +++ b/mysys/my_thr_init.c @@ -446,7 +446,7 @@ const char *my_thread_name(void) { my_thread_id id= my_thread_dbug_id(); sprintf(name_buff,"T@%lu", (ulong) id); - strmake(tmp->name,name_buff,THREAD_NAME_SIZE); + strmake_buf(tmp->name, name_buff); } return tmp->name; } diff --git a/sql-common/client.c b/sql-common/client.c index 976c09d7a70..c81fe6a8a69 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -776,7 +776,7 @@ restart: len-=2; if (protocol_41(mysql) && (char) pos[0] == '#') { - strmake(net->sqlstate, (char*) pos+1, SQLSTATE_LENGTH); + strmake_buf(net->sqlstate, (char*) pos+1); pos+= SQLSTATE_LENGTH+1; } else @@ -3120,7 +3120,7 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, bzero((char*) &UNIXaddr, sizeof(UNIXaddr)); UNIXaddr.sun_family= AF_UNIX; - strmake(UNIXaddr.sun_path, unix_socket, sizeof(UNIXaddr.sun_path)-1); + strmake_buf(UNIXaddr.sun_path, unix_socket); if (connect_sync_or_async(mysql, net, sock, (struct sockaddr *) &UNIXaddr, sizeof(UNIXaddr))) { diff --git a/sql/handler.cc b/sql/handler.cc index 058e219f76c..a4505b807c2 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -2097,7 +2097,7 @@ handle_condition(THD *, { *cond_hdl= NULL; /* Grab the error message */ - strmake(buff, msg, sizeof(buff)-1); + strmake_buf(buff, msg); return TRUE; } diff --git a/sql/item.cc b/sql/item.cc index 54f66375030..9475979aeef 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -4413,7 +4413,7 @@ static Item** find_field_in_group_list(Item *find_item, ORDER *group_list) if (db_name && lower_case_table_names) { /* Convert database to lower case for comparison */ - strmake(name_buff, db_name, sizeof(name_buff)-1); + strmake_buf(name_buff, db_name); my_casedn_str(files_charset_info, name_buff); db_name= name_buff; } diff --git a/sql/log.cc b/sql/log.cc index 112a02bd29e..a73d9fcd079 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -172,7 +172,7 @@ Silence_log_table_errors::handle_condition(THD *, MYSQL_ERROR ** cond_hdl) { *cond_hdl= NULL; - strmake(m_message, msg, sizeof(m_message)-1); + strmake_buf(m_message, msg); return TRUE; } @@ -3183,8 +3183,7 @@ bool MYSQL_BIN_LOG::open(const char *log_name, mysql_file_sync(log_file.file, MYF(MY_WME|MY_SYNC_FILESIZE))) goto err; mysql_mutex_lock(&LOCK_commit_ordered); - strmake(last_commit_pos_file, log_file_name, - sizeof(last_commit_pos_file)-1); + strmake_buf(last_commit_pos_file, log_file_name); last_commit_pos_offset= my_b_tell(&log_file); mysql_mutex_unlock(&LOCK_commit_ordered); @@ -3253,7 +3252,7 @@ int MYSQL_BIN_LOG::get_current_log(LOG_INFO* linfo) int MYSQL_BIN_LOG::raw_get_current_log(LOG_INFO* linfo) { - strmake(linfo->log_file_name, log_file_name, sizeof(linfo->log_file_name)-1); + strmake_buf(linfo->log_file_name, log_file_name); linfo->pos = my_b_tell(&log_file); return 0; } @@ -3691,8 +3690,7 @@ int MYSQL_BIN_LOG::purge_first_log(Relay_log_info* rli, bool included) Reset rli's coordinates to the current log. */ rli->event_relay_log_pos= BIN_LOG_HEADER_SIZE; - strmake(rli->event_relay_log_name,rli->linfo.log_file_name, - sizeof(rli->event_relay_log_name)-1); + strmake_buf(rli->event_relay_log_name,rli->linfo.log_file_name); /* If we removed the rli->group_relay_log_name file, @@ -3702,8 +3700,7 @@ int MYSQL_BIN_LOG::purge_first_log(Relay_log_info* rli, bool included) if (included) { rli->group_relay_log_pos = BIN_LOG_HEADER_SIZE; - strmake(rli->group_relay_log_name,rli->linfo.log_file_name, - sizeof(rli->group_relay_log_name)-1); + strmake_buf(rli->group_relay_log_name,rli->linfo.log_file_name); rli->notify_group_relay_log_name_update(); } @@ -4213,9 +4210,7 @@ int MYSQL_BIN_LOG::purge_logs_before_date(time_t purge_time) else { if (stat_area.st_mtime < purge_time) - strmake(to_log, - log_info.log_file_name, - sizeof(log_info.log_file_name) - 1); + strmake_buf(to_log, log_info.log_file_name); else break; } @@ -4830,8 +4825,7 @@ binlog_start_consistent_snapshot(handlerton *hton, THD *thd) binlog_cache_mngr *const cache_mngr= thd->binlog_setup_trx_data(); /* Server layer calls us with LOCK_commit_ordered locked, so this is safe. */ - strmake(cache_mngr->last_commit_pos_file, mysql_bin_log.last_commit_pos_file, - sizeof(cache_mngr->last_commit_pos_file)-1); + strmake_buf(cache_mngr->last_commit_pos_file, mysql_bin_log.last_commit_pos_file); cache_mngr->last_commit_pos_offset= mysql_bin_log.last_commit_pos_offset; trans_register_ha(thd, TRUE, hton); @@ -6023,8 +6017,7 @@ MYSQL_BIN_LOG::trx_group_commit_leader(group_commit_entry *leader) current->error= write_transaction_or_stmt(current); - strmake(cache_mngr->last_commit_pos_file, log_file_name, - sizeof(cache_mngr->last_commit_pos_file)-1); + strmake_buf(cache_mngr->last_commit_pos_file, log_file_name); commit_offset= my_b_write_tell(&log_file); cache_mngr->last_commit_pos_offset= commit_offset; if (cache_mngr->using_xa && cache_mngr->xa_xid) @@ -7402,7 +7395,7 @@ int TC_LOG_BINLOG::open(const char *opt_name) do { - strmake(log_name, log_info.log_file_name, sizeof(log_name)-1); + strmake_buf(log_name, log_info.log_file_name); } while (!(error= find_next_log(&log_info, 1))); if (error != LOG_INFO_EOF) @@ -7710,7 +7703,7 @@ static void set_binlog_snapshot_file(const char *src) { int dir_len = dirname_length(src); - strmake(binlog_snapshot_file, src + dir_len, sizeof(binlog_snapshot_file)-1); + strmake_buf(binlog_snapshot_file, src + dir_len); } /* diff --git a/sql/mysql_install_db.cc b/sql/mysql_install_db.cc index 6e2c6ec07f3..5d523abb8ae 100644 --- a/sql/mysql_install_db.cc +++ b/sql/mysql_install_db.cc @@ -377,7 +377,7 @@ static int register_service() static void clean_directory(const char *dir) { char dir2[MAX_PATH+2]; - *(strmake(dir2, dir, MAX_PATH+1)+1)= 0; + *(strmake_buf(dir2, dir)+1)= 0; SHFILEOPSTRUCT fileop; fileop.hwnd= NULL; /* no status display */ diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 5e8492f3490..dfabbcfb82c 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -3468,7 +3468,7 @@ static int init_common_variables() WideCharToMultiByte(CP_UTF8,0, wtz_name, -1, system_time_zone, sizeof(system_time_zone) - 1, NULL, NULL); #else - strmake(system_time_zone, tz_name, sizeof(system_time_zone)-1); + strmake_buf(system_time_zone, tz_name); #endif /* _WIN32 */ #endif /* HAVE_TZNAME */ @@ -7332,8 +7332,8 @@ static int mysql_init_variables(void) /* Set directory paths */ mysql_real_data_home_len= - strmake(mysql_real_data_home, get_relative_path(MYSQL_DATADIR), - sizeof(mysql_real_data_home)-1) - mysql_real_data_home; + strmake_buf(mysql_real_data_home, + get_relative_path(MYSQL_DATADIR)) - mysql_real_data_home; /* Replication parameters */ master_info_file= (char*) "master.info", relay_log_info_file= (char*) "relay-log.info"; @@ -7436,7 +7436,7 @@ static int mysql_init_variables(void) const char *tmpenv; if (!(tmpenv = getenv("MY_BASEDIR_VERSION"))) tmpenv = DEFAULT_MYSQL_HOME; - (void) strmake(mysql_home, tmpenv, sizeof(mysql_home)-1); + strmake_buf(mysql_home, tmpenv); #endif return 0; } @@ -7475,7 +7475,7 @@ mysqld_get_one_option(int optid, global_system_variables.tx_isolation= ISO_SERIALIZABLE; break; case 'b': - strmake(mysql_home,argument,sizeof(mysql_home)-1); + strmake_buf(mysql_home, argument); break; case 'C': if (default_collation_name == compiled_default_collation_name) @@ -7486,7 +7486,7 @@ mysqld_get_one_option(int optid, opt_log=1; break; case 'h': - strmake(mysql_real_data_home,argument, sizeof(mysql_real_data_home)-1); + strmake_buf(mysql_real_data_home, argument); /* Correct pointer set by my_getopt (for embedded library) */ mysql_real_data_home_ptr= mysql_real_data_home; break; @@ -7497,7 +7497,7 @@ mysqld_get_one_option(int optid, sql_print_warning("Ignoring user change to '%s' because the user was set to '%s' earlier on the command line\n", argument, mysqld_user); break; case 'L': - strmake(lc_messages_dir, argument, sizeof(lc_messages_dir)-1); + strmake_buf(lc_messages_dir, argument); break; case OPT_BINLOG_FORMAT: binlog_format_used= true; @@ -8182,7 +8182,7 @@ static int fix_paths(void) char *sharedir=get_relative_path(SHAREDIR); if (test_if_hard_path(sharedir)) - strmake(buff,sharedir,sizeof(buff)-1); /* purecov: tested */ + strmake_buf(buff, sharedir); /* purecov: tested */ else strxnmov(buff,sizeof(buff)-1,mysql_home,sharedir,NullS); convert_dirname(buff,buff,NullS); @@ -8190,7 +8190,7 @@ static int fix_paths(void) /* If --character-sets-dir isn't given, use shared library dir */ if (charsets_dir) - strmake(mysql_charsets_dir, charsets_dir, sizeof(mysql_charsets_dir)-1); + strmake_buf(mysql_charsets_dir, charsets_dir); else strxnmov(mysql_charsets_dir, sizeof(mysql_charsets_dir)-1, buff, CHARSET_DIR, NullS); diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc index cbd7ac8f5ef..e03d46606d5 100644 --- a/sql/rpl_rli.cc +++ b/sql/rpl_rli.cc @@ -309,8 +309,7 @@ Failed to open the existing relay log info file '%s' (errno %d)", msg="Error reading slave log configuration"; goto err; } - strmake(rli->event_relay_log_name,rli->group_relay_log_name, - sizeof(rli->event_relay_log_name)-1); + strmake_buf(rli->event_relay_log_name,rli->group_relay_log_name); rli->group_relay_log_pos= rli->event_relay_log_pos= relay_log_pos; rli->group_master_log_pos= master_log_pos; @@ -528,10 +527,8 @@ int init_relay_log_pos(Relay_log_info* rli,const char* log, *errmsg="Could not find target log during relay log initialization"; goto err; } - strmake(rli->group_relay_log_name,rli->linfo.log_file_name, - sizeof(rli->group_relay_log_name)-1); - strmake(rli->event_relay_log_name,rli->linfo.log_file_name, - sizeof(rli->event_relay_log_name)-1); + strmake_buf(rli->group_relay_log_name,rli->linfo.log_file_name); + strmake_buf(rli->event_relay_log_name,rli->linfo.log_file_name); if (rli->relay_log.is_active(rli->linfo.log_file_name)) { /* @@ -871,8 +868,7 @@ void Relay_log_info::inc_group_relay_log_pos(ulonglong log_pos, mysql_mutex_lock(&data_lock); inc_event_relay_log_pos(); group_relay_log_pos= event_relay_log_pos; - strmake(group_relay_log_name,event_relay_log_name, - sizeof(group_relay_log_name)-1); + strmake_buf(group_relay_log_name,event_relay_log_name); notify_group_relay_log_name_update(); @@ -1005,10 +1001,8 @@ int purge_relay_logs(Relay_log_info* rli, THD *thd, bool just_reset, goto err; } /* Save name of used relay log file */ - strmake(rli->group_relay_log_name, rli->relay_log.get_log_fname(), - sizeof(rli->group_relay_log_name)-1); - strmake(rli->event_relay_log_name, rli->relay_log.get_log_fname(), - sizeof(rli->event_relay_log_name)-1); + strmake_buf(rli->group_relay_log_name, rli->relay_log.get_log_fname()); + strmake_buf(rli->event_relay_log_name, rli->relay_log.get_log_fname()); rli->group_relay_log_pos= rli->event_relay_log_pos= BIN_LOG_HEADER_SIZE; if (count_relay_log_space(rli)) { diff --git a/sql/slave.cc b/sql/slave.cc index 0a162f6fbaa..02ab69af0e8 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -359,16 +359,13 @@ int init_recovery(Master_info* mi, const char** errmsg) { mi->master_log_pos= max(BIN_LOG_HEADER_SIZE, rli->group_master_log_pos); - strmake(mi->master_log_name, rli->group_master_log_name, - sizeof(mi->master_log_name)-1); + strmake_buf(mi->master_log_name, rli->group_master_log_name); sql_print_warning("Recovery from master pos %ld and file %s.", (ulong) mi->master_log_pos, mi->master_log_name); - strmake(rli->group_relay_log_name, rli->relay_log.get_log_fname(), - sizeof(rli->group_relay_log_name)-1); - strmake(rli->event_relay_log_name, rli->relay_log.get_log_fname(), - sizeof(mi->rli.event_relay_log_name)-1); + strmake_buf(rli->group_relay_log_name, rli->relay_log.get_log_fname()); + strmake_buf(rli->event_relay_log_name, rli->relay_log.get_log_fname()); rli->group_relay_log_pos= rli->event_relay_log_pos= BIN_LOG_HEADER_SIZE; } @@ -3588,8 +3585,8 @@ log '%s' at position %s, relay log '%s' position: %s", RPL_LOG_NAME, mysql_mutex_lock(&rli->data_lock); if (rli->slave_skip_counter) { - strmake(saved_log_name, rli->group_relay_log_name, FN_REFLEN - 1); - strmake(saved_master_log_name, rli->group_master_log_name, FN_REFLEN - 1); + strmake_buf(saved_log_name, rli->group_relay_log_name); + strmake_buf(saved_master_log_name, rli->group_master_log_name); saved_log_pos= rli->group_relay_log_pos; saved_master_log_pos= rli->group_master_log_pos; saved_skip= rli->slave_skip_counter; @@ -5223,8 +5220,7 @@ static Log_event* next_event(Relay_log_info* rli) goto err; } rli->event_relay_log_pos = BIN_LOG_HEADER_SIZE; - strmake(rli->event_relay_log_name,rli->linfo.log_file_name, - sizeof(rli->event_relay_log_name)-1); + strmake_buf(rli->event_relay_log_name,rli->linfo.log_file_name); flush_relay_log_info(rli); } diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index d1cdf35bb5a..a5ab5c1a816 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -1435,12 +1435,12 @@ bool acl_getroot(Security_context *sctx, char *user, char *host, sctx->master_access= acl_user->access; if (acl_user->user) - strmake(sctx->priv_user, user, USERNAME_LENGTH); + strmake_buf(sctx->priv_user, user); else *sctx->priv_user= 0; if (acl_user->host.hostname) - strmake(sctx->priv_host, acl_user->host.hostname, MAX_HOSTNAME - 1); + strmake_buf(sctx->priv_host, acl_user->host.hostname); else *sctx->priv_host= 0; } @@ -8325,10 +8325,9 @@ static bool find_mpvio_user(MPVIO_EXT *mpvio) mpvio->auth_info.user_name= sctx->user; mpvio->auth_info.user_name_length= strlen(sctx->user); mpvio->auth_info.auth_string= mpvio->acl_user->auth_string.str; - mpvio->auth_info.auth_string_length= - (unsigned long) mpvio->acl_user->auth_string.length; - strmake(mpvio->auth_info.authenticated_as, mpvio->acl_user->user ? - mpvio->acl_user->user : "", USERNAME_LENGTH); + mpvio->auth_info.auth_string_length= (unsigned long) mpvio->acl_user->auth_string.length; + strmake_buf(mpvio->auth_info.authenticated_as, mpvio->acl_user->user ? + mpvio->acl_user->user : ""); DBUG_PRINT("info", ("exit: user=%s, auth_string=%s, authenticated as=%s" "plugin=%s", @@ -8412,7 +8411,7 @@ static bool parse_com_change_user_packet(MPVIO_EXT *mpvio, uint packet_length) /* Clear variables that are allocated */ thd->user_connect= 0; - strmake(sctx->priv_user, sctx->user, USERNAME_LENGTH); + strmake_buf(sctx->priv_user, sctx->user); if (thd->make_lex_string(&mpvio->db, db_buff, db_len, 0) == 0) DBUG_RETURN(1); /* The error is set by make_lex_string(). */ @@ -9229,12 +9228,12 @@ bool acl_authenticate(THD *thd, uint connect_errors, sctx->master_access= acl_user->access; if (acl_user->user) - strmake(sctx->priv_user, acl_user->user, USERNAME_LENGTH - 1); + strmake_buf(sctx->priv_user, acl_user->user); else *sctx->priv_user= 0; if (acl_user->host.hostname) - strmake(sctx->priv_host, acl_user->host.hostname, MAX_HOSTNAME - 1); + strmake_buf(sctx->priv_host, acl_user->host.hostname); else *sctx->priv_host= 0; diff --git a/sql/sql_base.cc b/sql/sql_base.cc index a02294236f7..56c2a613b1e 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -6914,7 +6914,7 @@ find_field_in_tables(THD *thd, Item_ident *item, We can't do this in Item_field as this would change the 'name' of the item which may be used in the select list */ - strmake(name_buff, db, sizeof(name_buff)-1); + strmake_buf(name_buff, db); my_casedn_str(files_charset_info, name_buff); db= name_buff; } @@ -8487,7 +8487,7 @@ insert_fields(THD *thd, Name_resolution_context *context, const char *db_name, We can't do this in Item_field as this would change the 'name' of the item which may be used in the select list */ - strmake(name_buff, db_name, sizeof(name_buff)-1); + strmake_buf(name_buff, db_name); my_casedn_str(files_charset_info, name_buff); db_name= name_buff; } diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 33dc4218e95..7b3e10c73f1 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -2536,7 +2536,7 @@ select_export::prepare(List &list, SELECT_LEX_UNIT *u) bool string_results= FALSE, non_string_results= FALSE; unit= u; if ((uint) strlen(exchange->file_name) + NAME_LEN >= FN_REFLEN) - strmake(path,exchange->file_name,FN_REFLEN-1); + strmake_buf(path,exchange->file_name); write_cs= exchange->cs ? exchange->cs : &my_charset_bin; diff --git a/sql/sql_connect.cc b/sql/sql_connect.cc index 9f6185280cd..7e0b659a3e4 100644 --- a/sql/sql_connect.cc +++ b/sql/sql_connect.cc @@ -435,7 +435,7 @@ void init_user_stats(USER_STATS *user_stats, memcpy(user_stats->user, user, user_length); user_stats->user[user_length]= 0; user_stats->user_name_length= user_length; - strmake(user_stats->priv_user, priv_user, sizeof(user_stats->priv_user)-1); + strmake_buf(user_stats->priv_user, priv_user); user_stats->total_connections= total_connections; user_stats->concurrent_connections= concurrent_connections; diff --git a/sql/sql_error.cc b/sql/sql_error.cc index 06da6250e71..61281af1d0a 100644 --- a/sql/sql_error.cc +++ b/sql/sql_error.cc @@ -367,7 +367,7 @@ Diagnostics_area::set_ok_status(THD *thd, ulonglong affected_rows_arg, m_affected_rows= affected_rows_arg; m_last_insert_id= last_insert_id_arg; if (message_arg) - strmake(m_message, message_arg, sizeof(m_message) - 1); + strmake_buf(m_message, message_arg); else m_message[0]= '\0'; m_status= DA_OK; @@ -435,7 +435,7 @@ Diagnostics_area::set_error_status(THD *thd, uint sql_errno_arg, m_sql_errno= sql_errno_arg; memcpy(m_sqlstate, sqlstate, SQLSTATE_LENGTH); m_sqlstate[SQLSTATE_LENGTH]= '\0'; - strmake(m_message, message_arg, sizeof(m_message)-1); + strmake_buf(m_message, message_arg); m_status= DA_ERROR; DBUG_VOID_RETURN; diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index fc6151e44d9..bda443de3c3 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -2011,8 +2011,7 @@ public: DBUG_ENTER("Delayed_insert constructor"); thd.security_ctx->user=(char*) delayed_user; thd.security_ctx->host=(char*) my_localhost; - strmake(thd.security_ctx->priv_user, thd.security_ctx->user, - USERNAME_LENGTH); + strmake_buf(thd.security_ctx->priv_user, thd.security_ctx->user); thd.current_tablenr=0; thd.command=COM_DELAYED_INSERT; thd.lex->current_select= 0; // for my_message_sql diff --git a/sql/sql_plugin_compat.h b/sql/sql_plugin_compat.h index 8c6014f8dc6..5c7bb620575 100644 --- a/sql/sql_plugin_compat.h +++ b/sql/sql_plugin_compat.h @@ -16,9 +16,9 @@ /* old plugin api structures, used for backward compatibility */ #define upgrade_var(X) latest->X= X -#define upgrade_str(X) strmake(latest->X, X, sizeof(X)) +#define upgrade_str(X) strmake_buf(latest->X, X) #define downgrade_var(X) X= latest->X -#define downgrade_str(X) strmake(X, latest->X, sizeof(X)-1) +#define downgrade_str(X) strmake_buf(X, latest->X) /**************************************************************/ /* Authentication API, version 0x0100 *************************/ diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 4e5eef14d69..d2f942643a9 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -1272,8 +1272,7 @@ int start_slave(THD* thd , Master_info* mi, bool net_report) We don't check thd->lex->mi.log_file_name for NULL here since it is checked in sql_yacc.yy */ - strmake(mi->rli.until_log_name, thd->lex->mi.log_file_name, - sizeof(mi->rli.until_log_name)-1); + strmake_buf(mi->rli.until_log_name, thd->lex->mi.log_file_name); } else if (thd->lex->mi.relay_log_pos) { @@ -1281,8 +1280,7 @@ int start_slave(THD* thd , Master_info* mi, bool net_report) slave_errno=ER_BAD_SLAVE_UNTIL_COND; mi->rli.until_condition= Relay_log_info::UNTIL_RELAY_POS; mi->rli.until_log_pos= thd->lex->mi.relay_log_pos; - strmake(mi->rli.until_log_name, thd->lex->mi.relay_log_name, - sizeof(mi->rli.until_log_name)-1); + strmake_buf(mi->rli.until_log_name, thd->lex->mi.relay_log_name); } else mi->rli.clear_until_condition(); @@ -1639,9 +1637,9 @@ bool change_master(THD* thd, Master_info* mi) /* Before processing the command, save the previous state. */ - strmake(saved_host, mi->host, HOSTNAME_LENGTH); + strmake_buf(saved_host, mi->host); saved_port= mi->port; - strmake(saved_log_name, mi->master_log_name, FN_REFLEN - 1); + strmake_buf(saved_log_name, mi->master_log_name); saved_log_pos= mi->master_log_pos; /* @@ -1656,8 +1654,7 @@ bool change_master(THD* thd, Master_info* mi) } if (lex_mi->log_file_name) - strmake(mi->master_log_name, lex_mi->log_file_name, - sizeof(mi->master_log_name)-1); + strmake_buf(mi->master_log_name, lex_mi->log_file_name); if (lex_mi->pos) { mi->master_log_pos= lex_mi->pos; @@ -1721,15 +1718,15 @@ bool change_master(THD* thd, Master_info* mi) (lex_mi->ssl_verify_server_cert == LEX_MASTER_INFO::LEX_MI_ENABLE); if (lex_mi->ssl_ca) - strmake(mi->ssl_ca, lex_mi->ssl_ca, sizeof(mi->ssl_ca)-1); + strmake_buf(mi->ssl_ca, lex_mi->ssl_ca); if (lex_mi->ssl_capath) - strmake(mi->ssl_capath, lex_mi->ssl_capath, sizeof(mi->ssl_capath)-1); + strmake_buf(mi->ssl_capath, lex_mi->ssl_capath); if (lex_mi->ssl_cert) - strmake(mi->ssl_cert, lex_mi->ssl_cert, sizeof(mi->ssl_cert)-1); + strmake_buf(mi->ssl_cert, lex_mi->ssl_cert); if (lex_mi->ssl_cipher) - strmake(mi->ssl_cipher, lex_mi->ssl_cipher, sizeof(mi->ssl_cipher)-1); + strmake_buf(mi->ssl_cipher, lex_mi->ssl_cipher); if (lex_mi->ssl_key) - strmake(mi->ssl_key, lex_mi->ssl_key, sizeof(mi->ssl_key)-1); + strmake_buf(mi->ssl_key, lex_mi->ssl_key); #ifndef HAVE_OPENSSL if (lex_mi->ssl || lex_mi->ssl_ca || lex_mi->ssl_capath || lex_mi->ssl_cert || lex_mi->ssl_cipher || lex_mi->ssl_key || @@ -1743,10 +1740,8 @@ bool change_master(THD* thd, Master_info* mi) need_relay_log_purge= 0; char relay_log_name[FN_REFLEN]; mi->rli.relay_log.make_log_name(relay_log_name, lex_mi->relay_log_name); - strmake(mi->rli.group_relay_log_name, relay_log_name, - sizeof(mi->rli.group_relay_log_name)-1); - strmake(mi->rli.event_relay_log_name, relay_log_name, - sizeof(mi->rli.event_relay_log_name)-1); + strmake_buf(mi->rli.group_relay_log_name, relay_log_name); + strmake_buf(mi->rli.event_relay_log_name, relay_log_name); } if (lex_mi->relay_log_pos) @@ -1782,8 +1777,7 @@ bool change_master(THD* thd, Master_info* mi) */ mi->master_log_pos = max(BIN_LOG_HEADER_SIZE, mi->rli.group_master_log_pos); - strmake(mi->master_log_name, mi->rli.group_master_log_name, - sizeof(mi->master_log_name)-1); + strmake_buf(mi->master_log_name, mi->rli.group_master_log_name); } /* Relay log's IO_CACHE may not be inited, if rli->inited==0 (server was never @@ -1836,8 +1830,7 @@ bool change_master(THD* thd, Master_info* mi) */ mi->rli.group_master_log_pos= mi->master_log_pos; DBUG_PRINT("info", ("master_log_pos: %lu", (ulong) mi->master_log_pos)); - strmake(mi->rli.group_master_log_name,mi->master_log_name, - sizeof(mi->rli.group_master_log_name)-1); + strmake_buf(mi->rli.group_master_log_name,mi->master_log_name); if (!mi->rli.group_master_log_name[0]) // uninitialized case mi->rli.group_master_log_pos=0; diff --git a/sql/tztime.cc b/sql/tztime.cc index 0e793290bba..95a1001485b 100644 --- a/sql/tztime.cc +++ b/sql/tztime.cc @@ -2559,7 +2559,7 @@ main(int argc, char **argv) if (argc == 2) { - root_name_end= strmake(fullname, argv[1], FN_REFLEN); + root_name_end= strmake_buf(fullname, argv[1]); printf("TRUNCATE TABLE time_zone;\n"); printf("TRUNCATE TABLE time_zone_name;\n"); @@ -2713,7 +2713,7 @@ main(int argc, char **argv) (int)t, (int)t1); /* Let us load time zone description */ - str_end= strmake(fullname, TZDIR, FN_REFLEN); + str_end= strmake_buf(fullname, TZDIR); strmake(str_end, "/MET", FN_REFLEN - (str_end - fullname)); if (tz_load(fullname, &tz_info, &tz_storage)) diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc index c0bf0acb523..55394e859c5 100644 --- a/storage/federated/ha_federated.cc +++ b/storage/federated/ha_federated.cc @@ -3243,7 +3243,7 @@ int ha_federated::stash_remote_error() if (!mysql) DBUG_RETURN(remote_error_number); remote_error_number= mysql_errno(mysql); - strmake(remote_error_buf, mysql_error(mysql), sizeof(remote_error_buf)-1); + strmake_buf(remote_error_buf, mysql_error(mysql)); if (remote_error_number == ER_DUP_ENTRY || remote_error_number == ER_DUP_KEY) DBUG_RETURN(HA_ERR_FOUND_DUPP_KEY); diff --git a/storage/federatedx/ha_federatedx.cc b/storage/federatedx/ha_federatedx.cc index f6d9b3a4014..eb4d7f11d33 100644 --- a/storage/federatedx/ha_federatedx.cc +++ b/storage/federatedx/ha_federatedx.cc @@ -3439,7 +3439,7 @@ int ha_federatedx::stash_remote_error() if (!io) DBUG_RETURN(remote_error_number); remote_error_number= io->error_code(); - strmake(remote_error_buf, io->error_str(), sizeof(remote_error_buf)-1); + strmake_buf(remote_error_buf, io->error_str()); if (remote_error_number == ER_DUP_ENTRY || remote_error_number == ER_DUP_KEY) DBUG_RETURN(HA_ERR_FOUND_DUPP_KEY); diff --git a/storage/maria/ma_recovery.c b/storage/maria/ma_recovery.c index 9ac42f885b5..0f3fb0f8a1e 100644 --- a/storage/maria/ma_recovery.c +++ b/storage/maria/ma_recovery.c @@ -3304,7 +3304,7 @@ static LSN parse_checkpoint_record(LSN lsn) first_log_write_lsn= lsn_korr(ptr); ptr+= LSN_STORE_SIZE; name_len= strlen((char *)ptr) + 1; - strmake(name, (char *)ptr, sizeof(name)-1); + strmake_buf(name, (char *)ptr); ptr+= name_len; if (new_table(sid, name, first_log_write_lsn)) return LSN_ERROR; diff --git a/storage/myisammrg/ha_myisammrg.cc b/storage/myisammrg/ha_myisammrg.cc index bf27e7c2284..2b571675aef 100644 --- a/storage/myisammrg/ha_myisammrg.cc +++ b/storage/myisammrg/ha_myisammrg.cc @@ -1470,7 +1470,7 @@ static void split_file_name(const char *file_name, char buff[FN_REFLEN]; db->length= 0; - strmake(buff, file_name, sizeof(buff)-1); + strmake_buf(buff, file_name); dir_length= dirname_length(buff); if (dir_length > 1) { From 84ce6832e64305a769fb424d272311468b5d1d0d Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 18 Apr 2013 22:17:29 +0200 Subject: [PATCH 110/172] MDEV-4332 Increase username length from 16 characters --- include/mysql_com.h | 2 +- mysql-test/r/grant_4332.result | 97 ++++++++++++++++ mysql-test/r/status_user.result | 2 +- .../suite/funcs_1/r/is_columns_is.result | 4 +- .../funcs_1/r/is_columns_is_embedded.result | 4 +- .../rpl/r/rpl_password_boundaries.result | 6 +- .../suite/rpl/t/rpl_password_boundaries.test | 2 +- mysql-test/t/grant_4332.test | 107 ++++++++++++++++++ sql/event_db_repository.cc | 2 +- sql/item_strfunc.cc | 2 + sql/item_strfunc.h | 6 +- sql/rpl_mi.h | 2 +- sql/sp.cc | 2 +- sql/sql_acl.cc | 6 +- sql/sql_repl.cc | 16 +-- sql/sql_show.cc | 2 +- sql/sql_yacc.yy | 4 +- tests/mysql_client_test.c | 9 +- 18 files changed, 244 insertions(+), 31 deletions(-) create mode 100644 mysql-test/r/grant_4332.result create mode 100644 mysql-test/t/grant_4332.test diff --git a/include/mysql_com.h b/include/mysql_com.h index 4a28e145546..fdd75556033 100644 --- a/include/mysql_com.h +++ b/include/mysql_com.h @@ -24,7 +24,7 @@ #define HOSTNAME_LENGTH 60 #define SYSTEM_CHARSET_MBMAXLEN 3 #define NAME_CHAR_LEN 64 /* Field/table name length */ -#define USERNAME_CHAR_LENGTH 16 +#define USERNAME_CHAR_LENGTH 128 #define NAME_LEN (NAME_CHAR_LEN*SYSTEM_CHARSET_MBMAXLEN) #define USERNAME_LENGTH (USERNAME_CHAR_LENGTH*SYSTEM_CHARSET_MBMAXLEN) diff --git a/mysql-test/r/grant_4332.result b/mysql-test/r/grant_4332.result new file mode 100644 index 00000000000..f0286173b4c --- /dev/null +++ b/mysql-test/r/grant_4332.result @@ -0,0 +1,97 @@ +set global event_scheduler = on; +select user(); +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def user() 253 77 14 N 1 31 8 +user() +root@localhost +create user a17aaaaaaaaaaaaa0@localhost; +ERROR HY000: String 'a17aaaaaaaaaaaaa0' is too long for user name (should be no longer than 16) +alter table mysql.user modify User char(80) binary not null default ''; +alter table mysql.db modify User char(80) binary not null default ''; +alter table mysql.tables_priv modify User char(80) binary not null default ''; +alter table mysql.columns_priv modify User char(80) binary not null default ''; +alter table mysql.procs_priv modify User char(80) binary not null default ''; +alter table mysql.proc modify definer char(141) collate utf8_bin not null default ''; +alter table mysql.event modify definer char(141) collate utf8_bin not null default ''; +flush privileges; +select user(); +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def user() 253 141 14 N 1 31 8 +user() +root@localhost +create user a17aaaaaaaaaaaaa0@localhost; +grant usage on *.* to a17aaaaaaaaaaaaa0@localhost; +grant select on mysql.user to b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0@localhost; +grant select(User) on mysql.tables_priv to c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0@localhost; +select user(), current_user(); +user() current_user() +a17aaaaaaaaaaaaa0@localhost a17aaaaaaaaaaaaa0@localhost +show grants; +Grants for a17aaaaaaaaaaaaa0@localhost +GRANT USAGE ON *.* TO 'a17aaaaaaaaaaaaa0'@'localhost' +select user(), current_user(); +user() current_user() +b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0@localhost b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0@localhost +show grants; +Grants for b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0@localhost +GRANT USAGE ON *.* TO 'b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0'@'localhost' +GRANT SELECT ON `mysql`.`user` TO 'b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0'@'localhost' +select user,host from mysql.user where user like '%0'; +user host +a17aaaaaaaaaaaaa0 localhost +b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0 localhost +c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0 localhost +select user,host from mysql.db; +ERROR 42000: SELECT command denied to user 'b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'@'localhost' for table 'db' +select user(), current_user(); +user() current_user() +c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0@localhost c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0@localhost +show grants; +Grants for c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0@localhost +GRANT USAGE ON *.* TO 'c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0'@'localhost' +GRANT SELECT (User) ON `mysql`.`tables_priv` TO 'c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0'@'localhost' +select user from mysql.tables_priv; +user +b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0 +c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0 +select user,host from mysql.tables_priv; +ERROR 42000: SELECT command denied to user 'c80ccccccccccccccccccccccccccccccccccccccccccccc'@'localhost' for column 'host' in table 'tables_priv' +create procedure test.p1() select user(), current_user(), user from mysql.tables_priv; +show create procedure test.p1; +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +p1 CREATE DEFINER=`c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0`@`localhost` PROCEDURE `p1`() +select user(), current_user(), user from mysql.tables_priv latin1 latin1_swedish_ci latin1_swedish_ci +create table test.t1 (a text); +create event e1 on schedule every 1 second +do insert test.t1 values (concat(user(), ' ', current_user())); +call test.p1(); +user() current_user() user +root@localhost c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0@localhost b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0 +root@localhost c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0@localhost c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0 +select * from t1 limit 1; +a +event_scheduler@localhost c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0@localhost +grant usage on *.* to d81ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd0@lodalhost; +ERROR HY000: String 'd81ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd' is too long for user name (should be no longer than 80) +drop user d81ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd0@lodalhost; +ERROR HY000: String 'd81ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd' is too long for user name (should be no longer than 80) +drop user c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0@localhost; +drop user b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0@localhost; +drop user a17aaaaaaaaaaaaa0@localhost; +set global event_scheduler = off; +drop event e1; +drop procedure test.p1; +drop table t1; +alter table mysql.user modify User char(16) binary not null default ''; +alter table mysql.db modify User char(16) binary not null default ''; +alter table mysql.tables_priv modify User char(16) binary not null default ''; +alter table mysql.columns_priv modify User char(16) binary not null default ''; +alter table mysql.procs_priv modify User char(16) binary not null default ''; +alter table mysql.proc modify definer char(77) collate utf8_bin not null default ''; +alter table mysql.event modify definer char(77) collate utf8_bin not null default ''; +flush privileges; +select user(); +Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr +def user() 253 77 14 N 1 31 8 +user() +root@localhost diff --git a/mysql-test/r/status_user.result b/mysql-test/r/status_user.result index f43e217b8a5..39579799431 100644 --- a/mysql-test/r/status_user.result +++ b/mysql-test/r/status_user.result @@ -27,7 +27,7 @@ ACCESS_DENIED bigint(21) NO 0 EMPTY_QUERIES bigint(21) NO 0 show columns from information_schema.user_statistics; Field Type Null Key Default Extra -USER varchar(48) NO +USER varchar(128) NO TOTAL_CONNECTIONS int(11) NO 0 CONCURRENT_CONNECTIONS int(11) NO 0 CONNECTED_TIME int(11) NO 0 diff --git a/mysql-test/suite/funcs_1/r/is_columns_is.result b/mysql-test/suite/funcs_1/r/is_columns_is.result index 4da7eeb2ada..5707dcbb3db 100644 --- a/mysql-test/suite/funcs_1/r/is_columns_is.result +++ b/mysql-test/suite/funcs_1/r/is_columns_is.result @@ -398,7 +398,7 @@ def information_schema USER_STATISTICS ROWS_UPDATED 14 0 NO bigint NULL NULL 19 def information_schema USER_STATISTICS SELECT_COMMANDS 15 0 NO bigint NULL NULL 19 0 NULL NULL NULL bigint(21) select def information_schema USER_STATISTICS TOTAL_CONNECTIONS 2 0 NO int NULL NULL 10 0 NULL NULL NULL int(11) select def information_schema USER_STATISTICS UPDATE_COMMANDS 16 0 NO bigint NULL NULL 19 0 NULL NULL NULL bigint(21) select -def information_schema USER_STATISTICS USER 1 NO varchar 48 144 NULL NULL NULL utf8 utf8_general_ci varchar(48) select +def information_schema USER_STATISTICS USER 1 NO varchar 128 384 NULL NULL NULL utf8 utf8_general_ci varchar(128) select def information_schema VIEWS CHARACTER_SET_CLIENT 9 NO varchar 32 96 NULL NULL NULL utf8 utf8_general_ci varchar(32) select def information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL NULL utf8 utf8_general_ci varchar(8) select def information_schema VIEWS COLLATION_CONNECTION 10 NO varchar 32 96 NULL NULL NULL utf8 utf8_general_ci varchar(32) select @@ -844,7 +844,7 @@ NULL information_schema TRIGGERS CREATED datetime NULL NULL NULL NULL datetime 3.0000 information_schema USER_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) 3.0000 information_schema USER_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) 3.0000 information_schema USER_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema USER_STATISTICS USER varchar 48 144 utf8 utf8_general_ci varchar(48) +3.0000 information_schema USER_STATISTICS USER varchar 128 384 utf8 utf8_general_ci varchar(128) NULL information_schema USER_STATISTICS TOTAL_CONNECTIONS int NULL NULL NULL NULL int(11) NULL information_schema USER_STATISTICS CONCURRENT_CONNECTIONS int NULL NULL NULL NULL int(11) NULL information_schema USER_STATISTICS CONNECTED_TIME int NULL NULL NULL NULL int(11) diff --git a/mysql-test/suite/funcs_1/r/is_columns_is_embedded.result b/mysql-test/suite/funcs_1/r/is_columns_is_embedded.result index 3fb4d97748c..61b98480d4f 100644 --- a/mysql-test/suite/funcs_1/r/is_columns_is_embedded.result +++ b/mysql-test/suite/funcs_1/r/is_columns_is_embedded.result @@ -399,7 +399,7 @@ def information_schema USER_STATISTICS ROWS_UPDATED 14 0 NO bigint NULL NULL 19 def information_schema USER_STATISTICS SELECT_COMMANDS 15 0 NO bigint NULL NULL 19 0 NULL NULL NULL bigint(21) def information_schema USER_STATISTICS TOTAL_CONNECTIONS 2 0 NO int NULL NULL 10 0 NULL NULL NULL int(11) def information_schema USER_STATISTICS UPDATE_COMMANDS 16 0 NO bigint NULL NULL 19 0 NULL NULL NULL bigint(21) -def information_schema USER_STATISTICS USER 1 NO varchar 48 144 NULL NULL NULL utf8 utf8_general_ci varchar(48) +def information_schema USER_STATISTICS USER 1 NO varchar 128 384 NULL NULL NULL utf8 utf8_general_ci varchar(128) def information_schema VIEWS CHARACTER_SET_CLIENT 9 NO varchar 32 96 NULL NULL NULL utf8 utf8_general_ci varchar(32) def information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL NULL utf8 utf8_general_ci varchar(8) def information_schema VIEWS COLLATION_CONNECTION 10 NO varchar 32 96 NULL NULL NULL utf8 utf8_general_ci varchar(32) @@ -849,7 +849,7 @@ NULL information_schema TRIGGERS CREATED datetime NULL NULL NULL NULL datetime 3.0000 information_schema USER_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) 3.0000 information_schema USER_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) 3.0000 information_schema USER_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema USER_STATISTICS USER varchar 48 144 utf8 utf8_general_ci varchar(48) +3.0000 information_schema USER_STATISTICS USER varchar 128 384 utf8 utf8_general_ci varchar(128) NULL information_schema USER_STATISTICS TOTAL_CONNECTIONS int NULL NULL NULL NULL int(11) NULL information_schema USER_STATISTICS CONCURRENT_CONNECTIONS int NULL NULL NULL NULL int(11) NULL information_schema USER_STATISTICS CONNECTED_TIME int NULL NULL NULL NULL int(11) diff --git a/mysql-test/suite/rpl/r/rpl_password_boundaries.result b/mysql-test/suite/rpl/r/rpl_password_boundaries.result index 71f32f492a2..a0ccc0ce33c 100644 --- a/mysql-test/suite/rpl/r/rpl_password_boundaries.result +++ b/mysql-test/suite/rpl/r/rpl_password_boundaries.result @@ -24,10 +24,10 @@ set sql_log_bin=1; include/stop_slave.inc change master to master_user='rpl33',master_password='0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef!'; ERROR HY000: String '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345' is too long for MASTER_PASSWORD (should be no longer than 96) -change master to master_user='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; -ERROR HY000: String 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long for MASTER_USER (should be no longer than 47) +change master to master_user='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; +ERROR HY000: String 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long for MASTER_USER (should be no longer than 128) change master to master_host='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc'; -ERROR HY000: String 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbb' is too long for MASTER_HOST (should be no longer than 180) +ERROR HY000: String 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbb' is too long for MASTER_HOST (should be no longer than 60) [ on master ] set sql_log_bin=0; grant replication slave on *.* to rpl16cyr@127.0.0.1 identified by 'воттакойужпарольвоттакойужпарольвоттакойужпароль'; diff --git a/mysql-test/suite/rpl/t/rpl_password_boundaries.test b/mysql-test/suite/rpl/t/rpl_password_boundaries.test index cf8abfbda11..d812ab5efc8 100644 --- a/mysql-test/suite/rpl/t/rpl_password_boundaries.test +++ b/mysql-test/suite/rpl/t/rpl_password_boundaries.test @@ -53,7 +53,7 @@ change master to master_user='rpl33',master_password='0123456789abcdef0123456789 # Check also master_user and master_host --error ER_WRONG_STRING_LENGTH -change master to master_user='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; +change master to master_user='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; --error ER_WRONG_STRING_LENGTH change master to master_host='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc'; diff --git a/mysql-test/t/grant_4332.test b/mysql-test/t/grant_4332.test new file mode 100644 index 00000000000..4d8d769680d --- /dev/null +++ b/mysql-test/t/grant_4332.test @@ -0,0 +1,107 @@ +# +# MDEV-4332 Increase username length from 16 characters +# + +# user names here have the pattern +# 0 +# where '0' at the end is the end-of-name marker + +--source include/not_embedded.inc + +set global event_scheduler = on; + +--enable_metadata +select user(); +--disable_metadata + +--error ER_WRONG_STRING_LENGTH +create user a17aaaaaaaaaaaaa0@localhost; + +alter table mysql.user modify User char(80) binary not null default ''; +alter table mysql.db modify User char(80) binary not null default ''; +alter table mysql.tables_priv modify User char(80) binary not null default ''; +alter table mysql.columns_priv modify User char(80) binary not null default ''; +alter table mysql.procs_priv modify User char(80) binary not null default ''; +alter table mysql.proc modify definer char(141) collate utf8_bin not null default ''; +alter table mysql.event modify definer char(141) collate utf8_bin not null default ''; +flush privileges; + +--enable_metadata +select user(); +--disable_metadata + +create user a17aaaaaaaaaaaaa0@localhost; +grant usage on *.* to a17aaaaaaaaaaaaa0@localhost; +grant select on mysql.user to b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0@localhost; +grant select(User) on mysql.tables_priv to c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0@localhost; + +connect (a17,localhost,a17aaaaaaaaaaaaa0,,); +connect (b64,localhost,b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0,,); +connect (c80,localhost,c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0,,); + +connection a17; +select user(), current_user(); +show grants; + +connection b64; +select user(), current_user(); +show grants; +select user,host from mysql.user where user like '%0'; +--error ER_TABLEACCESS_DENIED_ERROR +select user,host from mysql.db; + +connection c80; +select user(), current_user(); +show grants; +select user from mysql.tables_priv; +--error ER_COLUMNACCESS_DENIED_ERROR +select user,host from mysql.tables_priv; + +create procedure test.p1() select user(), current_user(), user from mysql.tables_priv; + +show create procedure test.p1; + +create table test.t1 (a text); +create event e1 on schedule every 1 second + do insert test.t1 values (concat(user(), ' ', current_user())); + +connection default; + +call test.p1(); + +disconnect a17; +disconnect b64; +disconnect c80; + +let $wait_timeout= 10; +let $wait_condition= SELECT 1 from t1; +--source include/wait_condition.inc + +select * from t1 limit 1; +--error ER_WRONG_STRING_LENGTH +grant usage on *.* to d81ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd0@lodalhost; + +--error ER_WRONG_STRING_LENGTH +drop user d81ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd0@lodalhost; +drop user c80cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc0@localhost; +drop user b64bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0@localhost; +drop user a17aaaaaaaaaaaaa0@localhost; + +set global event_scheduler = off; +drop event e1; +drop procedure test.p1; +drop table t1; + +alter table mysql.user modify User char(16) binary not null default ''; +alter table mysql.db modify User char(16) binary not null default ''; +alter table mysql.tables_priv modify User char(16) binary not null default ''; +alter table mysql.columns_priv modify User char(16) binary not null default ''; +alter table mysql.procs_priv modify User char(16) binary not null default ''; +alter table mysql.proc modify definer char(77) collate utf8_bin not null default ''; +alter table mysql.event modify definer char(77) collate utf8_bin not null default ''; +flush privileges; + +--enable_metadata +select user(); +--disable_metadata + diff --git a/sql/event_db_repository.cc b/sql/event_db_repository.cc index 14927a66915..37dff0da714 100644 --- a/sql/event_db_repository.cc +++ b/sql/event_db_repository.cc @@ -55,7 +55,7 @@ const TABLE_FIELD_TYPE event_table_fields[ET_FIELD_COUNT] = }, { { C_STRING_WITH_LEN("definer") }, - { C_STRING_WITH_LEN("char(77)") }, + { C_STRING_WITH_LEN("char(") }, { C_STRING_WITH_LEN("utf8") } }, { diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index b1f351696b7..a18ded2de80 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -59,6 +59,8 @@ C_MODE_START #include "../mysys/my_static.h" // For soundex_map C_MODE_END +size_t username_char_length= 16; + /** @todo Remove this. It is not safe to use a shared String object. */ diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h index 13c1a399230..77179195283 100644 --- a/sql/item_strfunc.h +++ b/sql/item_strfunc.h @@ -25,6 +25,8 @@ #pragma interface /* gcc class implementation */ #endif +extern size_t username_char_length; + class MY_LOCALE; class Item_str_func :public Item_func @@ -494,8 +496,8 @@ public: bool fix_fields(THD *thd, Item **ref); void fix_length_and_dec() { - max_length= (USERNAME_LENGTH + - (HOSTNAME_LENGTH + 1) * SYSTEM_CHARSET_MBMAXLEN); + max_length= (username_char_length + + HOSTNAME_LENGTH + 1) * SYSTEM_CHARSET_MBMAXLEN; } const char *func_name() const { return "user"; } const char *fully_qualified_func_name() const { return "user()"; } diff --git a/sql/rpl_mi.h b/sql/rpl_mi.h index 64525f81603..f9c8c8ea5b2 100644 --- a/sql/rpl_mi.h +++ b/sql/rpl_mi.h @@ -67,7 +67,7 @@ class Master_info : public Slave_reporting_capability /* the variables below are needed because we can change masters on the fly */ char master_log_name[FN_REFLEN]; char host[HOSTNAME_LENGTH*SYSTEM_CHARSET_MBMAXLEN+1]; - char user[USERNAME_LENGTH*+1]; + char user[USERNAME_LENGTH+1]; char password[MAX_PASSWORD_LENGTH*SYSTEM_CHARSET_MBMAXLEN+1]; bool ssl; // enables use of SSL connection if true char ssl_ca[FN_REFLEN], ssl_capath[FN_REFLEN], ssl_cert[FN_REFLEN]; diff --git a/sql/sp.cc b/sql/sp.cc index 726d70ffe2a..13f027493b4 100644 --- a/sql/sp.cc +++ b/sql/sp.cc @@ -114,7 +114,7 @@ TABLE_FIELD_TYPE proc_table_fields[MYSQL_PROC_FIELD_COUNT] = }, { { C_STRING_WITH_LEN("definer") }, - { C_STRING_WITH_LEN("char(77)") }, + { C_STRING_WITH_LEN("char(") }, { C_STRING_WITH_LEN("utf8") } }, { diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index a5ab5c1a816..d331c4b00ea 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -828,6 +828,7 @@ static my_bool acl_load(THD *thd, TABLE_LIST *tables) table->use_all_columns(); (void) my_init_dynamic_array(&acl_users,sizeof(ACL_USER),50,100); + username_char_length= min(table->field[1]->char_length(), USERNAME_CHAR_LENGTH); password_length= table->field[2]->field_length / table->field[2]->charset()->mbmaxlen; if (password_length < SCRAMBLED_PASSWORD_CHAR_LENGTH_323) @@ -8626,14 +8627,15 @@ static ulong parse_client_handshake_packet(MPVIO_EXT *mpvio, /* Clip username to allowed length in characters (not bytes). This is - mostly for backward compatibility. + mostly for backward compatibility (to truncate long usernames, as + old 5.1 did) */ { CHARSET_INFO *cs= system_charset_info; int err; user_len= (uint) cs->cset->well_formed_len(cs, user, user + user_len, - USERNAME_CHAR_LENGTH, &err); + username_char_length, &err); user[user_len]= '\0'; } diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index d2f942643a9..b8a12b1ea8a 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -1555,14 +1555,15 @@ void kill_zombie_dump_threads(uint32 slave_server_id) */ static bool get_string_parameter(char *to, const char *from, size_t length, - const char *name) + const char *name, CHARSET_INFO *cs) { if (from) // Empty paramaters allowed { - size_t from_length; - if ((from_length= strlen(from)) > length) + size_t from_length= strlen(from); + uint from_numchars= cs->cset->numchars(cs, from, from + from_length); + if (from_numchars > length / cs->mbmaxlen) { - my_error(ER_WRONG_STRING_LENGTH, MYF(0), from, name, (int) length); + my_error(ER_WRONG_STRING_LENGTH, MYF(0), from, name, length / cs->mbmaxlen); return 1; } memcpy(to, from, from_length+1); @@ -1662,11 +1663,12 @@ bool change_master(THD* thd, Master_info* mi) DBUG_PRINT("info", ("master_log_pos: %lu", (ulong) mi->master_log_pos)); if (get_string_parameter(mi->host, lex_mi->host, sizeof(mi->host)-1, - "MASTER_HOST") || + "MASTER_HOST", system_charset_info) || get_string_parameter(mi->user, lex_mi->user, sizeof(mi->user)-1, - "MASTER_USER") || + "MASTER_USER", system_charset_info) || get_string_parameter(mi->password, lex_mi->password, - sizeof(mi->password)-1, "MASTER_PASSWORD")) + sizeof(mi->password)-1, "MASTER_PASSWORD", + &my_charset_bin)) { ret= TRUE; goto err; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 055dfa95b8b..2ebaeec61bc 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -7041,7 +7041,7 @@ struct schema_table_ref ST_FIELD_INFO user_stats_fields_info[]= { - {"USER", USERNAME_LENGTH, MYSQL_TYPE_STRING, 0, 0, "User", SKIP_OPEN_TABLE}, + {"USER", USERNAME_CHAR_LENGTH, MYSQL_TYPE_STRING, 0, 0, "User", SKIP_OPEN_TABLE}, {"TOTAL_CONNECTIONS", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Total_connections",SKIP_OPEN_TABLE}, {"CONCURRENT_CONNECTIONS", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Concurrent_connections",SKIP_OPEN_TABLE}, {"CONNECTED_TIME", MY_INT32_NUM_DECIMAL_DIGITS, MYSQL_TYPE_LONG, 0, 0, "Connected_time",SKIP_OPEN_TABLE}, diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 79056702e54..8f88f3304e6 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -12887,7 +12887,7 @@ user: $$->auth= empty_lex_str; if (check_string_char_length(&$$->user, ER(ER_USERNAME), - USERNAME_CHAR_LENGTH, + username_char_length, system_charset_info, 0)) MYSQL_YYABORT; } @@ -12902,7 +12902,7 @@ user: $$->auth= empty_lex_str; if (check_string_char_length(&$$->user, ER(ER_USERNAME), - USERNAME_CHAR_LENGTH, + username_char_length, system_charset_info, 0) || check_host_name(&$$->host)) MYSQL_YYABORT; diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index f3f25a4ec90..d726563f86a 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -16903,13 +16903,14 @@ static void test_bug31418() */ #define LARGE_BUFFER_SIZE 2048 +#define OLD_USERNAME_CHAR_LENGTH 16 static void test_bug31669() { int rc; static char buff[LARGE_BUFFER_SIZE+1]; #ifndef EMBEDDED_LIBRARY - static char user[USERNAME_CHAR_LENGTH+1]; + static char user[OLD_USERNAME_CHAR_LENGTH+1]; static char db[NAME_CHAR_LEN+1]; static char query[LARGE_BUFFER_SIZE*2]; #endif @@ -16946,7 +16947,7 @@ static void test_bug31669() myquery(rc); memset(user, 'b', sizeof(user)); - user[USERNAME_CHAR_LENGTH]= 0; + user[OLD_USERNAME_CHAR_LENGTH]= 0; memset(buff, 'c', sizeof(buff)); buff[LARGE_BUFFER_SIZE]= 0; strxmov(query, "GRANT ALL PRIVILEGES ON *.* TO '", user, "'@'%' IDENTIFIED BY " @@ -16965,11 +16966,11 @@ static void test_bug31669() rc= mysql_change_user(conn, user, buff, db); DIE_UNLESS(!rc); - user[USERNAME_CHAR_LENGTH-1]= 'a'; + user[OLD_USERNAME_CHAR_LENGTH-1]= 'a'; rc= mysql_change_user(conn, user, buff, db); DIE_UNLESS(rc); - user[USERNAME_CHAR_LENGTH-1]= 'b'; + user[OLD_USERNAME_CHAR_LENGTH-1]= 'b'; buff[LARGE_BUFFER_SIZE-1]= 'd'; rc= mysql_change_user(conn, user, buff, db); DIE_UNLESS(rc); From 4d78392be5649d06c8d1c6b57c9e4ec95b84df5f Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Fri, 19 Apr 2013 12:08:55 +0200 Subject: [PATCH 111/172] MDEV-4398 - Change default for innodb_use_fallocate to FALSE, due to bugs in older Linux kernels (posix_fallocate() does not always guarantee that file size is like one specified) --- .../suite/sys_vars/r/innodb_use_fallocate_basic.result | 10 +++++----- storage/innobase/handler/ha_innodb.cc | 2 +- storage/xtradb/handler/ha_innodb.cc | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/mysql-test/suite/sys_vars/r/innodb_use_fallocate_basic.result b/mysql-test/suite/sys_vars/r/innodb_use_fallocate_basic.result index 7ea55fba0a4..57b4b9eb94c 100644 --- a/mysql-test/suite/sys_vars/r/innodb_use_fallocate_basic.result +++ b/mysql-test/suite/sys_vars/r/innodb_use_fallocate_basic.result @@ -1,20 +1,20 @@ select @@global.innodb_use_fallocate; @@global.innodb_use_fallocate -1 +0 select @@session.innodb_use_fallocate; ERROR HY000: Variable 'innodb_use_fallocate' is a GLOBAL variable show global variables like 'innodb_use_fallocate'; Variable_name Value -innodb_use_fallocate ON +innodb_use_fallocate OFF show session variables like 'innodb_use_fallocate'; Variable_name Value -innodb_use_fallocate ON +innodb_use_fallocate OFF select * from information_schema.global_variables where variable_name='innodb_use_fallocate'; VARIABLE_NAME VARIABLE_VALUE -INNODB_USE_FALLOCATE ON +INNODB_USE_FALLOCATE OFF select * from information_schema.session_variables where variable_name='innodb_use_fallocate'; VARIABLE_NAME VARIABLE_VALUE -INNODB_USE_FALLOCATE ON +INNODB_USE_FALLOCATE OFF set global innodb_use_fallocate=1; ERROR HY000: Variable 'innodb_use_fallocate' is a read only variable set session innodb_use_fallocate=1; diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index abce3c93f68..19a6512a14f 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -11420,7 +11420,7 @@ static MYSQL_SYSVAR_BOOL(use_atomic_writes, innobase_use_atomic_writes, static MYSQL_SYSVAR_BOOL(use_fallocate, innobase_use_fallocate, PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY, "Preallocate files fast, using operating system functionality. On POSIX systems, posix_fallocate system call is used.", - NULL, NULL, TRUE); + NULL, NULL, FALSE); static MYSQL_SYSVAR_ULONG(io_capacity, srv_io_capacity, PLUGIN_VAR_RQCMDARG, diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index c194dc38889..18912b499ae 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -12661,7 +12661,7 @@ static MYSQL_SYSVAR_BOOL(use_atomic_writes, innobase_use_atomic_writes, static MYSQL_SYSVAR_BOOL(use_fallocate, innobase_use_fallocate, PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY, "Preallocate files fast, using operating system functionality. On POSIX systems, posix_fallocate system call is used.", - NULL, NULL, TRUE); + NULL, NULL, FALSE); static MYSQL_SYSVAR_ULONG(io_capacity, srv_io_capacity, PLUGIN_VAR_RQCMDARG, From b9b3d5330adf00f40e099ab079a0b0be1bcb8875 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 19 Apr 2013 12:50:16 +0200 Subject: [PATCH 112/172] MDEV-260 auditing table accesses --- include/mysql/plugin_audit.h | 46 +++++++++- include/mysql/plugin_audit.h.pp | 21 +++++ mysql-test/suite/plugins/r/audit_null.result | 73 +++++++++++++++- mysql-test/suite/plugins/t/audit_null.test | 29 +++++++ plugin/audit_null/audit_null.c | 89 +++++++++++++------ sql/handler.cc | 13 ++- sql/handler.h | 1 + sql/sql_audit.cc | 32 ++++++- sql/sql_audit.h | 91 +++++++++++++++++++- sql/sql_table.cc | 10 +++ 10 files changed, 372 insertions(+), 33 deletions(-) diff --git a/include/mysql/plugin_audit.h b/include/mysql/plugin_audit.h index eee32a9e523..86b6dea5668 100644 --- a/include/mysql/plugin_audit.h +++ b/include/mysql/plugin_audit.h @@ -25,7 +25,7 @@ #define MYSQL_AUDIT_CLASS_MASK_SIZE 1 -#define MYSQL_AUDIT_INTERFACE_VERSION 0x0300 +#define MYSQL_AUDIT_INTERFACE_VERSION 0x0301 /************************************************************************* @@ -97,6 +97,50 @@ struct mysql_event_connection unsigned int database_length; }; +/* + AUDIT CLASS : TABLE + + LOCK occurs when a connection "locks" (this does not necessarily mean a table + lock and also happens for row-locking engines) the table at the beginning of + a statement. This event is generated at the beginning of every statement for + every affected table, unless there's a LOCK TABLES statement in effect (in + which case it is generated once for LOCK TABLES and then is suppressed until + the tables are unlocked). + + CREATE/DROP/RENAME occur when a table is created, dropped, or renamed. +*/ + +#define MYSQL_AUDIT_TABLE_CLASS 15 +#define MYSQL_AUDIT_TABLE_CLASSMASK (1 << MYSQL_AUDIT_TABLE_CLASS) +#define MYSQL_AUDIT_TABLE_LOCK 0 +#define MYSQL_AUDIT_TABLE_CREATE 1 +#define MYSQL_AUDIT_TABLE_DROP 2 +#define MYSQL_AUDIT_TABLE_RENAME 3 +#define MYSQL_AUDIT_TABLE_ALTER 4 + +struct mysql_event_table +{ + unsigned int event_subclass; + unsigned long thread_id; + const char *user; + const char *priv_user; + const char *priv_host; + const char *external_user; + const char *proxy_user; + const char *host; + const char *ip; + const char *database; + unsigned int database_length; + const char *table; + unsigned int table_length; + /* for MYSQL_AUDIT_TABLE_LOCK, true if read-only, false if read/write */ + int read_only; + /* for MYSQL_AUDIT_TABLE_RENAME */ + const char *new_database; + unsigned int new_database_length; + const char *new_table; + unsigned int new_table_length; +}; /************************************************************************* Here we define the descriptor structure, that is referred from diff --git a/include/mysql/plugin_audit.h.pp b/include/mysql/plugin_audit.h.pp index f19d5fe797c..cb8435a1ec7 100644 --- a/include/mysql/plugin_audit.h.pp +++ b/include/mysql/plugin_audit.h.pp @@ -279,6 +279,27 @@ struct mysql_event_connection const char *database; unsigned int database_length; }; +struct mysql_event_table +{ + unsigned int event_subclass; + unsigned long thread_id; + const char *user; + const char *priv_user; + const char *priv_host; + const char *external_user; + const char *proxy_user; + const char *host; + const char *ip; + const char *database; + unsigned int database_length; + const char *table; + unsigned int table_length; + int read_only; + const char *new_database; + unsigned int new_database_length; + const char *new_table; + unsigned int new_table_length; +}; struct st_mysql_audit { int interface_version; diff --git a/mysql-test/suite/plugins/r/audit_null.result b/mysql-test/suite/plugins/r/audit_null.result index 4cf648510e6..76aef454b94 100644 --- a/mysql-test/suite/plugins/r/audit_null.result +++ b/mysql-test/suite/plugins/r/audit_null.result @@ -1,5 +1,6 @@ set @old_global_general_log=@@global.general_log; set global general_log=OFF; +grant select on *.* to testuser@localhost; install plugin audit_null soname 'adt_null'; select 1; 1 @@ -18,12 +19,82 @@ concat("test1", x) test1-12 show status like 'audit_null%'; Variable_name Value -Audit_null_called 19 +Audit_null_called 21 Audit_null_general_error 1 Audit_null_general_log 7 Audit_null_general_result 5 +create table t1 (a int); +insert t1 values (1), (2); +select * from t1; +a +1 +2 +rename table t1 to t2; +alter table t2 add column b int; +create definer=testuser@localhost view v1 as select t2.a+1, t2_copy.a+2 from t2, t2 as t2_copy; +select * from v1; +t2.a+1 t2_copy.a+2 +2 3 +3 3 +2 4 +3 4 +drop view v1; +create temporary table t2 (a date); +insert t2 values ('2020-10-09'); +select * from t2; +a +2020-10-09 +drop table t2; +explain select distinct * from t2; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using temporary +select distinct * from t2; +a b +1 NULL +2 NULL +drop table t2; uninstall plugin audit_null; Warnings: Warning 1620 Plugin is busy and will be uninstalled on shutdown drop procedure au1; +drop user testuser@localhost; set global general_log=@old_global_general_log; +root[root] @ localhost [] >> select 1 +root[root] @ localhost [] >> select foobar +root[root] @ localhost [] >> show status like 'audit_null%' +root[root] @ localhost [] >> create procedure au1(x char(16)) select concat("test1", x) +root[root] @ localhost [] mysql.proc : write +root[root] @ localhost [] >> call au1("-12") +root[root] @ localhost [] mysql.proc : read +root[root] @ localhost [] >> select concat("test1", NAME_CONST('x',_latin1'-12' COLLATE 'latin1_swedish_ci')) +root[root] @ localhost [] >> show status like 'audit_null%' +root[root] @ localhost [] >> create table t1 (a int) +root[root] @ localhost [] test.t1 : create +root[root] @ localhost [] >> insert t1 values (1), (2) +root[root] @ localhost [] test.t1 : write +root[root] @ localhost [] >> select * from t1 +root[root] @ localhost [] test.t1 : read +root[root] @ localhost [] >> rename table t1 to t2 +root[root] @ localhost [] test.t1 : rename to test.t2 +root[root] @ localhost [] >> alter table t2 add column b int +root[root] @ localhost [] test.t2 : alter +root[root] @ localhost [] test.t2 : read +root[root] @ localhost [] >> create definer=testuser@localhost view v1 as select t2.a+1, t2_copy.a+2 from t2, t2 as t2_copy +root[root] @ localhost [] test.t2 : read +root[root] @ localhost [] test.t2 : read +root[root] @ localhost [] >> select * from v1 +root[root] @ localhost [] test.t2 : read +root[root] @ localhost [] test.t2 : read +root[root] @ localhost [] >> drop view v1 +root[root] @ localhost [] >> create temporary table t2 (a date) +root[root] @ localhost [] >> insert t2 values ('2020-10-09') +root[root] @ localhost [] >> select * from t2 +root[root] @ localhost [] >> drop table t2 +root[root] @ localhost [] >> explain select distinct * from t2 +root[root] @ localhost [] test.t2 : read +root[root] @ localhost [] >> select distinct * from t2 +root[root] @ localhost [] test.t2 : read +root[root] @ localhost [] >> drop table t2 +root[root] @ localhost [] test.t2 : drop +root[root] @ localhost [] >> uninstall plugin audit_null +root[root] @ localhost [] mysql.plugin : write diff --git a/mysql-test/suite/plugins/t/audit_null.test b/mysql-test/suite/plugins/t/audit_null.test index 428fd0c276e..47491668529 100644 --- a/mysql-test/suite/plugins/t/audit_null.test +++ b/mysql-test/suite/plugins/t/audit_null.test @@ -8,6 +8,8 @@ if (!$ADT_NULL_SO) { set @old_global_general_log=@@global.general_log; set global general_log=OFF; +grant select on *.* to testuser@localhost; + --disable_ps_protocol install plugin audit_null soname 'adt_null'; @@ -22,9 +24,36 @@ call au1("-12"); show status like 'audit_null%'; +create table t1 (a int); +insert t1 values (1), (2); +select * from t1; +rename table t1 to t2; +alter table t2 add column b int; + +create definer=testuser@localhost view v1 as select t2.a+1, t2_copy.a+2 from t2, t2 as t2_copy; +select * from v1; +drop view v1; + +# temp table generates no audit events +create temporary table t2 (a date); +insert t2 values ('2020-10-09'); +select * from t2; +drop table t2; + +# internal temp table generates no audit events +explain select distinct * from t2; +select distinct * from t2; + +drop table t2; + uninstall plugin audit_null; --enable_ps_protocol drop procedure au1; +drop user testuser@localhost; set global general_log=@old_global_general_log; +let $MYSQLD_DATADIR= `SELECT @@datadir`; +--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/ /#sql2-[-0-9a-f_]*/#sql2-temporary/ +cat_file $MYSQLD_DATADIR/audit_null_tables.log; + diff --git a/plugin/audit_null/audit_null.c b/plugin/audit_null/audit_null.c index be0c70fbd35..916c7187a57 100644 --- a/plugin/audit_null/audit_null.c +++ b/plugin/audit_null/audit_null.c @@ -22,11 +22,12 @@ #define __attribute__(A) #endif -static volatile int number_of_calls; /* for SHOW STATUS, see below */ -static volatile int number_of_calls_general_log; -static volatile int number_of_calls_general_error; -static volatile int number_of_calls_general_result; +static volatile int ncalls; /* for SHOW STATUS, see below */ +static volatile int ncalls_general_log; +static volatile int ncalls_general_error; +static volatile int ncalls_general_result; +FILE *f; /* Initialize the plugin at server start or plugin installation. @@ -44,11 +45,16 @@ static volatile int number_of_calls_general_result; static int audit_null_plugin_init(void *arg __attribute__((unused))) { - number_of_calls= 0; - number_of_calls_general_log= 0; - number_of_calls_general_error= 0; - number_of_calls_general_result= 0; - return(0); + ncalls= 0; + ncalls_general_log= 0; + ncalls_general_error= 0; + ncalls_general_result= 0; + + f = fopen("audit_null_tables.log", "w"); + if (!f) + return 1; + + return 0; } @@ -67,7 +73,8 @@ static int audit_null_plugin_init(void *arg __attribute__((unused))) static int audit_null_plugin_deinit(void *arg __attribute__((unused))) { - return(0); + fclose(f); + return 0; } @@ -86,7 +93,7 @@ static void audit_null_notify(MYSQL_THD thd __attribute__((unused)), const void *event) { /* prone to races, oh well */ - number_of_calls++; + ncalls++; if (event_class == MYSQL_AUDIT_GENERAL_CLASS) { const struct mysql_event_general *event_general= @@ -94,18 +101,56 @@ static void audit_null_notify(MYSQL_THD thd __attribute__((unused)), switch (event_general->event_subclass) { case MYSQL_AUDIT_GENERAL_LOG: - number_of_calls_general_log++; + ncalls_general_log++; + fprintf(f, "%s\t>> %s\n", event_general->general_user, + event_general->general_query); break; case MYSQL_AUDIT_GENERAL_ERROR: - number_of_calls_general_error++; + ncalls_general_error++; break; case MYSQL_AUDIT_GENERAL_RESULT: - number_of_calls_general_result++; + ncalls_general_result++; break; default: break; } } + else + if (event_class == MYSQL_AUDIT_TABLE_CLASS) + { + const struct mysql_event_table *event_table= + (const struct mysql_event_table *) event; + const char *ip= event_table->ip ? event_table->ip : ""; + const char *op= 0; + char buf[1024]; + + switch (event_table->event_subclass) + { + case MYSQL_AUDIT_TABLE_LOCK: + op= event_table->read_only ? "read" : "write"; + break; + case MYSQL_AUDIT_TABLE_CREATE: + op= "create"; + break; + case MYSQL_AUDIT_TABLE_DROP: + op= "drop"; + break; + case MYSQL_AUDIT_TABLE_ALTER: + op= "alter"; + break; + case MYSQL_AUDIT_TABLE_RENAME: + snprintf(buf, sizeof(buf), "rename to %s.%s", + event_table->new_database, event_table->new_table); + buf[sizeof(buf)-1]= 0; + op= buf; + break; + } + + fprintf(f, "%s[%s] @ %s [%s]\t%s.%s : %s\n", + event_table->priv_user, event_table->user, + event_table->host, ip, + event_table->database, event_table->table, op); + } } @@ -115,10 +160,8 @@ static void audit_null_notify(MYSQL_THD thd __attribute__((unused)), static struct st_mysql_audit audit_null_descriptor= { - MYSQL_AUDIT_INTERFACE_VERSION, /* interface version */ - NULL, /* release_thd function */ - audit_null_notify, /* notify function */ - { (unsigned long) MYSQL_AUDIT_GENERAL_CLASSMASK } /* class mask */ + MYSQL_AUDIT_INTERFACE_VERSION, NULL, audit_null_notify, + { MYSQL_AUDIT_GENERAL_CLASSMASK | MYSQL_AUDIT_TABLE_CLASSMASK } }; /* @@ -127,12 +170,10 @@ static struct st_mysql_audit audit_null_descriptor= static struct st_mysql_show_var simple_status[]= { - { "Audit_null_called", (char *) &number_of_calls, SHOW_INT }, - { "Audit_null_general_log", (char *) &number_of_calls_general_log, SHOW_INT }, - { "Audit_null_general_error", (char *) &number_of_calls_general_error, - SHOW_INT }, - { "Audit_null_general_result", (char *) &number_of_calls_general_result, - SHOW_INT }, + { "Audit_null_called", (char *) &ncalls, SHOW_INT }, + { "Audit_null_general_log", (char *) &ncalls_general_log, SHOW_INT }, + { "Audit_null_general_error", (char *) &ncalls_general_error, SHOW_INT }, + { "Audit_null_general_result", (char *) &ncalls_general_result, SHOW_INT }, { 0, 0, 0} }; diff --git a/sql/handler.cc b/sql/handler.cc index a4505b807c2..355226b0e25 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -43,6 +43,7 @@ #include "myisam.h" #include "probes_mysql.h" #include "debug_sync.h" // DEBUG_SYNC +#include "sql_audit.h" #ifdef WITH_PARTITION_STORAGE_ENGINE #include "ha_partition.h" @@ -3689,7 +3690,6 @@ int handler::ha_delete_table(const char *name) { mark_trx_read_write(); - return delete_table(name); } @@ -3722,8 +3722,11 @@ int handler::ha_create(const char *name, TABLE *form, HA_CREATE_INFO *info) { mark_trx_read_write(); - - return create(name, form, info); + int error= create(name, form, info); + if (!error && + !(info->options & (HA_LEX_CREATE_TMP_TABLE | HA_CREATE_TMP_ALTER))) + mysql_audit_create_table(form); + return error; } @@ -5099,7 +5102,11 @@ int handler::ha_external_lock(THD *thd, int lock_type) int error= external_lock(thd, lock_type); if (error == 0) + { cached_table_flags= table_flags(); + if (table_share->tmp_table == NO_TMP_TABLE) + mysql_audit_external_lock(thd, table_share, lock_type); + } if (MYSQL_HANDLER_RDLOCK_DONE_ENABLED() || MYSQL_HANDLER_WRLOCK_DONE_ENABLED() || diff --git a/sql/handler.h b/sql/handler.h index 4a91d989e52..af9574d82f8 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -318,6 +318,7 @@ #define HA_LEX_CREATE_TMP_TABLE 1 #define HA_LEX_CREATE_IF_NOT_EXISTS 2 #define HA_LEX_CREATE_TABLE_LIKE 4 +#define HA_CREATE_TMP_ALTER 8 #define HA_MAX_REC_LENGTH 65535 /* Table caching type */ diff --git a/sql/sql_audit.cc b/sql/sql_audit.cc index 523f07592bc..8e17f49df28 100644 --- a/sql/sql_audit.cc +++ b/sql/sql_audit.cc @@ -31,8 +31,7 @@ unsigned long mysql_global_audit_mask[MYSQL_AUDIT_CLASS_MASK_SIZE]; static mysql_mutex_t LOCK_audit_mask; -static void event_class_dispatch(THD *thd, unsigned int event_class, - const void *event); +static void event_class_dispatch(THD *, unsigned int, const void *); static inline @@ -111,9 +110,36 @@ static void connection_class_handler(THD *thd, uint event_subclass, va_list ap) } +static void table_class_handler(THD *thd, uint event_subclass, va_list ap) +{ + mysql_event_table event; + event.event_subclass= event_subclass; + event.read_only= va_arg(ap, int); + event.thread_id= va_arg(ap, unsigned long); + event.user= va_arg(ap, const char *); + event.priv_user= va_arg(ap, const char *); + event.priv_host= va_arg(ap, const char *); + event.external_user= va_arg(ap, const char *); + event.proxy_user= va_arg(ap, const char *); + event.host= va_arg(ap, const char *); + event.ip= va_arg(ap, const char *); + event.database= va_arg(ap, const char *); + event.database_length= va_arg(ap, unsigned int); + event.table= va_arg(ap, const char *); + event.table_length= va_arg(ap, unsigned int); + event.new_database= va_arg(ap, const char *); + event.new_database_length= va_arg(ap, unsigned int); + event.new_table= va_arg(ap, const char *); + event.new_table_length= va_arg(ap, unsigned int); + event_class_dispatch(thd, MYSQL_AUDIT_TABLE_CLASS, &event); +} + + static audit_handler_t audit_handlers[] = { - general_class_handler, connection_class_handler + general_class_handler, connection_class_handler, + 0,0,0,0,0,0,0,0,0,0,0,0,0, /* placeholders */ + table_class_handler }; static const uint audit_handlers_count= diff --git a/sql/sql_audit.h b/sql/sql_audit.h index 46afe4b7596..75b338a16c8 100644 --- a/sql/sql_audit.h +++ b/sql/sql_audit.h @@ -43,17 +43,23 @@ static inline bool mysql_audit_general_enabled() return mysql_global_audit_mask[0] & MYSQL_AUDIT_GENERAL_CLASSMASK; } +static inline bool mysql_audit_table_enabled() +{ + return mysql_global_audit_mask[0] & MYSQL_AUDIT_TABLE_CLASSMASK; +} + #else static inline void mysql_audit_notify(THD *thd, uint event_class, uint event_subtype, ...) { } #define mysql_audit_general_enabled() 0 +#define mysql_audit_table_enabled() 0 #endif extern void mysql_audit_release(THD *thd); #define MAX_USER_HOST_SIZE 512 static inline uint make_user_name(THD *thd, char *buf) { - Security_context *sctx= thd->security_ctx; + const Security_context *sctx= thd->security_ctx; return strxnmov(buf, MAX_USER_HOST_SIZE, sctx->priv_user[0] ? sctx->priv_user : "", "[", sctx->user ? sctx->user : "", "] @ ", @@ -174,4 +180,87 @@ void mysql_audit_general(THD *thd, uint event_subtype, (thd)->security_ctx->ip ? strlen((thd)->security_ctx->ip) : 0,\ (thd)->db, (thd)->db ? strlen((thd)->db) : 0) +static inline +void mysql_audit_external_lock(THD *thd, TABLE_SHARE *share, int lock) +{ + if (lock != F_UNLCK && mysql_audit_table_enabled()) + { + const Security_context *sctx= thd->security_ctx; + mysql_audit_notify(thd, MYSQL_AUDIT_TABLE_CLASS, MYSQL_AUDIT_TABLE_LOCK, + (int)(lock == F_RDLCK), (ulong)thd->thread_id, + sctx->user, sctx->priv_user, sctx->priv_host, + sctx->external_user, sctx->proxy_user, sctx->host, + sctx->ip, share->db.str, (uint)share->db.length, + share->table_name.str, (uint)share->table_name.length, + 0,0,0,0); + } +} + +static inline +void mysql_audit_create_table(TABLE *table) +{ + if (mysql_audit_table_enabled()) + { + THD *thd= table->in_use; + const TABLE_SHARE *share= table->s; + const Security_context *sctx= thd->security_ctx; + mysql_audit_notify(thd, MYSQL_AUDIT_TABLE_CLASS, MYSQL_AUDIT_TABLE_CREATE, + 0, (ulong)thd->thread_id, + sctx->user, sctx->priv_user, sctx->priv_host, + sctx->external_user, sctx->proxy_user, sctx->host, + sctx->ip, share->db.str, (uint)share->db.length, + share->table_name.str, (uint)share->table_name.length, + 0,0,0,0); + } +} + +static inline +void mysql_audit_drop_table(THD *thd, TABLE_LIST *table) +{ + if (mysql_audit_table_enabled()) + { + const Security_context *sctx= thd->security_ctx; + mysql_audit_notify(thd, MYSQL_AUDIT_TABLE_CLASS, MYSQL_AUDIT_TABLE_DROP, + 0, (ulong)thd->thread_id, + sctx->user, sctx->priv_user, sctx->priv_host, + sctx->external_user, sctx->proxy_user, sctx->host, + sctx->ip, table->db, (uint)table->db_length, + table->table_name, (uint)table->table_name_length, + 0,0,0,0); + } +} + +static inline +void mysql_audit_rename_table(THD *thd, const char *old_db, const char *old_tb, + const char *new_db, const char *new_tb) +{ + if (mysql_audit_table_enabled()) + { + const Security_context *sctx= thd->security_ctx; + mysql_audit_notify(thd, MYSQL_AUDIT_TABLE_CLASS, MYSQL_AUDIT_TABLE_RENAME, + 0, (ulong)thd->thread_id, + sctx->user, sctx->priv_user, sctx->priv_host, + sctx->external_user, sctx->proxy_user, sctx->host, + sctx->ip, + old_db, (uint)strlen(old_db), old_tb, (uint)strlen(old_tb), + new_db, (uint)strlen(new_db), new_tb, (uint)strlen(new_tb)); + } +} + +static inline +void mysql_audit_alter_table(THD *thd, TABLE_LIST *table) +{ + if (mysql_audit_table_enabled()) + { + const Security_context *sctx= thd->security_ctx; + mysql_audit_notify(thd, MYSQL_AUDIT_TABLE_CLASS, MYSQL_AUDIT_TABLE_ALTER, + 0, (ulong)thd->thread_id, + sctx->user, sctx->priv_user, sctx->priv_host, + sctx->external_user, sctx->proxy_user, sctx->host, + sctx->ip, table->db, (uint)table->db_length, + table->table_name, (uint)table->table_name_length, + 0,0,0,0); + } +} + #endif /* SQL_AUDIT_INCLUDED */ diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 0effe2a7351..85c557acbfa 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -54,6 +54,7 @@ #include "sql_show.h" #include "transaction.h" #include "datadict.h" // dd_frm_type() +#include "sql_audit.h" #ifdef __WIN__ #include @@ -2344,6 +2345,10 @@ int mysql_rm_table_no_locks(THD *thd, TABLE_LIST *tables, bool if_exists, wrong_tables.append(','); wrong_tables.append(String(table->table_name,system_charset_info)); } + else + { + mysql_audit_drop_table(thd, table); + } DBUG_PRINT("table", ("table: 0x%lx s: 0x%lx", (long) table->table, table->table ? (long) table->table->s : (long) -1)); @@ -4728,6 +4733,8 @@ mysql_rename_table(handlerton *base, const char *old_db, my_error(ER_NOT_SUPPORTED_YET, MYF(0), "ALTER TABLE"); else if (error) my_error(ER_ERROR_ON_RENAME, MYF(0), from, to, error); + else if (!(flags & FN_IS_TMP)) + mysql_audit_rename_table(thd, old_db, old_name, new_db, new_name); DBUG_RETURN(error != 0); } @@ -6054,6 +6061,8 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name, mysql_ha_rm_tables(thd, table_list); + mysql_audit_alter_table(thd, table_list); + /* DISCARD/IMPORT TABLESPACE is always alone in an ALTER TABLE */ if (alter_info->tablespace_op != NO_TABLESPACE_OP) /* Conditionally writes to binlog. */ @@ -6716,6 +6725,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name, HA_OPTION_PACK_RECORD)); } tmp_disable_binlog(thd); + create_info->options|=HA_CREATE_TMP_ALTER; error= mysql_create_table_no_lock(thd, new_db, tmp_name, create_info, alter_info, From b54e5850d425f73a51f3210981cd609b604e9698 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 22 Apr 2013 16:22:39 +0200 Subject: [PATCH 113/172] MDEV-4396: Fix sporadic failure of test innodb.innodb_bug14676111 The problem was that xtradb has innodb_purge_threads default 1 (plain innodb defaults to 0). The test sets a special debug variable and relies on it to force purge to happen. But when using background purge threads, this does not work, the debug code is not made to handle this, so occasionally the test times out waiting for the purge to occur. Fix by explicitly setting innodb_purgee_threads=0 for this test. --- mysql-test/suite/innodb/t/innodb_bug14676111-master.opt | 1 + mysql-test/suite/innodb/t/innodb_bug14676111.test | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 mysql-test/suite/innodb/t/innodb_bug14676111-master.opt diff --git a/mysql-test/suite/innodb/t/innodb_bug14676111-master.opt b/mysql-test/suite/innodb/t/innodb_bug14676111-master.opt new file mode 100644 index 00000000000..e16b9b0b895 --- /dev/null +++ b/mysql-test/suite/innodb/t/innodb_bug14676111-master.opt @@ -0,0 +1 @@ +--loose-innodb-purge-threads=0 diff --git a/mysql-test/suite/innodb/t/innodb_bug14676111.test b/mysql-test/suite/innodb/t/innodb_bug14676111.test index fadd111fdc9..41862b8105e 100644 --- a/mysql-test/suite/innodb/t/innodb_bug14676111.test +++ b/mysql-test/suite/innodb/t/innodb_bug14676111.test @@ -3,6 +3,11 @@ -- source include/have_innodb.inc -- source include/have_debug.inc +# Note that this test needs to be able to manipulate how/when purge is done +# using @@innodb_limit_optimistic_insert_debug. This does not work with +# background purge threads, so we disabled them in the -master.opt (they are +# off by default in normal 5.5 innodb but on by default in xtradb) + if (`select count(*)=0 from information_schema.global_variables where variable_name = 'INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG'`) { --skip Test requires InnoDB built with UNIV_DEBUG definition. From 203264ddc9c399fa4a86b589ae638eccfb66e9ed Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 25 Apr 2013 13:16:35 +0200 Subject: [PATCH 114/172] Fix unsigned/signed conversion bug in event type during mysql_binlog_send(). Since event types can be >=128 and are read from a (possibly signed) char pointer, we need to cast to unsigned char before extending to int, or we will get an incorrect negative number. This was done in the main code path already, but there is a rare case where we check for new events first without a lock and then again with the lock. If the second check succeeds because a new event turns up at just the right time, then we took a code path that was missing the correct unsigned char cast, leading to incorrect handling of events for old slave servers and possibly other grief. (This was found from a sporadic failure in Buildbot of test case rpl_mariadb_slave_capability). --- sql/sql_repl.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index b8a12b1ea8a..be9717cdc65 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -1026,7 +1026,8 @@ impossible position"; mysql_mutex_unlock(log_lock); read_packet = 1; p_coord->pos= uint4korr(packet->ptr() + ev_offset + LOG_POS_OFFSET); - event_type= (Log_event_type)((*packet)[LOG_EVENT_OFFSET+ev_offset]); + event_type= + (Log_event_type)((uchar)(*packet)[LOG_EVENT_OFFSET+ev_offset]); break; case LOG_READ_EOF: From 1d130cc6970073b5459801b51a2b87e4f08bd97c Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Thu, 25 Apr 2013 15:11:59 +0200 Subject: [PATCH 115/172] Fix build on Windows --- plugin/audit_null/audit_null.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugin/audit_null/audit_null.c b/plugin/audit_null/audit_null.c index 916c7187a57..fd4cd1d1e87 100644 --- a/plugin/audit_null/audit_null.c +++ b/plugin/audit_null/audit_null.c @@ -22,6 +22,10 @@ #define __attribute__(A) #endif +#ifdef _MSC_VER +#define snprintf _snprintf +#endif + static volatile int ncalls; /* for SHOW STATUS, see below */ static volatile int ncalls_general_log; static volatile int ncalls_general_error; From f225f5485c0ebd15d4496994ac78e41fc3b39d10 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Sat, 27 Apr 2013 23:28:48 -0700 Subject: [PATCH 116/172] Fixed bug mdev-4340. The function make_join_statistics checks whether eq_ref access uses only constant expressions, and, if this is the case the function performs constant row substitution. The code of this check must take into account hidden components of extended secondary keys. --- mysql-test/r/innodb_ext_key.result | 122 ++++++++++++++++++++++++++++ mysql-test/t/innodb_ext_key.test | 123 +++++++++++++++++++++++++++++ sql/sql_select.cc | 11 ++- 3 files changed, 254 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/innodb_ext_key.result b/mysql-test/r/innodb_ext_key.result index 0da4feaf26f..4a6b902e869 100644 --- a/mysql-test/r/innodb_ext_key.result +++ b/mysql-test/r/innodb_ext_key.result @@ -865,6 +865,128 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL # Using where 1 SIMPLE t3 ref PRIMARY,col1 col1 12 test.t1.a,test.t1.a,test.t1.a # Using index drop table t1,t2,t3; +# +# Bug mdev-4340: performance regression with extended_keys=on +# +set @save_optimizer_switch=@@optimizer_switch; +CREATE TABLE t1 ( +page_id int(8) unsigned NOT NULL AUTO_INCREMENT, +page_namespace int(11) NOT NULL DEFAULT '0', +page_title varbinary(255) NOT NULL DEFAULT '', +page_restrictions tinyblob NOT NULL, +page_counter bigint(20) unsigned NOT NULL DEFAULT '0', +page_is_redirect tinyint(1) unsigned NOT NULL DEFAULT '0', +page_is_new tinyint(1) unsigned NOT NULL DEFAULT '0', +page_random double unsigned NOT NULL DEFAULT '0', +page_touched varbinary(14) NOT NULL DEFAULT '', +page_latest int(8) unsigned NOT NULL DEFAULT '0', +page_len int(8) unsigned NOT NULL DEFAULT '0', +PRIMARY KEY (page_id), +UNIQUE KEY name_title (page_namespace,page_title), +KEY page_random (page_random), +KEY page_len (page_len), +KEY page_redirect_namespace_len (page_is_redirect,page_namespace,page_len) +) ENGINE=InnoDB AUTO_INCREMENT=38929100 DEFAULT CHARSET=binary; +INSERT INTO t1 VALUES +(38928077,0,'Sandbox','',0,0,0,0,'',0,0),(38928078,1,'Sandbox','',0,0,0,1,'',0,0), +(38928079,2,'Sandbox','',0,0,0,2,'',0,0),(38928080,3,'Sandbox','',0,0,0,3,'',0,0), +(38928081,4,'Sandbox','',0,0,0,4,'',0,0),(38928082,5,'Sandbox','',0,0,0,5,'',0,0); +CREATE TABLE t2 ( +rev_id int(8) unsigned NOT NULL AUTO_INCREMENT, +rev_page int(8) unsigned NOT NULL DEFAULT '0', +rev_text_id int(8) unsigned NOT NULL DEFAULT '0', +rev_comment varbinary(255) DEFAULT NULL, +rev_user int(5) unsigned NOT NULL DEFAULT '0', +rev_user_text varbinary(255) NOT NULL DEFAULT '', +rev_timestamp varbinary(14) NOT NULL DEFAULT '', +rev_minor_edit tinyint(1) unsigned NOT NULL DEFAULT '0', +rev_deleted tinyint(1) unsigned NOT NULL DEFAULT '0', +rev_len int(8) unsigned DEFAULT NULL, +rev_parent_id int(8) unsigned DEFAULT NULL, +rev_sha1 varbinary(32) NOT NULL DEFAULT '', +PRIMARY KEY (rev_page,rev_id), +UNIQUE KEY rev_id (rev_id), +KEY rev_timestamp (rev_timestamp), +KEY page_timestamp (rev_page,rev_timestamp), +KEY user_timestamp (rev_user,rev_timestamp), +KEY usertext_timestamp (rev_user_text,rev_timestamp,rev_user,rev_deleted,rev_minor_edit,rev_text_id,rev_comment) +) ENGINE=InnoDB DEFAULT CHARSET=binary; +INSERT INTO t2 VALUES +(547116222,20,0,NULL,3,'','',0,0,NULL,NULL,''),(547117245,20,0,NULL,4,'','',0,0,NULL,NULL,''), +(547118268,20,0,NULL,5,'','',0,0,NULL,NULL,''),(547114177,21,0,NULL,1,'','',0,0,NULL,NULL,''), +(547115200,21,0,NULL,2,'','',0,0,NULL,NULL,''),(547116223,21,0,NULL,3,'','',0,0,NULL,NULL,''), +(547117246,21,0,NULL,4,'','',0,0,NULL,NULL,''),(547118269,21,0,NULL,5,'','',0,0,NULL,NULL,''), +(547114178,22,0,NULL,1,'','',0,0,NULL,NULL,''),(547115201,22,0,NULL,2,'','',0,0,NULL,NULL,''), +(547116224,22,0,NULL,3,'','',0,0,NULL,NULL,''),(547117247,22,0,NULL,4,'','',0,0,NULL,NULL,''), +(547116226,24,0,NULL,3,'','',0,0,NULL,NULL,''),(547117249,24,0,NULL,4,'','',0,0,NULL,NULL,''), +(547118272,24,0,NULL,5,'','',0,0,NULL,NULL,''),(547114181,25,0,NULL,1,'','',0,0,NULL,NULL,''), +(547115204,25,0,NULL,2,'','',0,0,NULL,NULL,''),(547116227,25,0,NULL,3,'','',0,0,NULL,NULL,''), +(547116157,978,0,NULL,2,'','',0,0,NULL,NULL,''),(547117180,978,0,NULL,3,'','',0,0,NULL,NULL,''), +(547118203,978,0,NULL,4,'','',0,0,NULL,NULL,''),(547119226,978,0,NULL,5,'','',0,0,NULL,NULL,''), +(547115135,979,0,NULL,1,'','',0,0,NULL,NULL,''),(547116158,979,0,NULL,2,'','',0,0,NULL,NULL,''), +(547116173,994,0,NULL,2,'','',0,0,NULL,NULL,''),(547117196,994,0,NULL,3,'','',0,0,NULL,NULL,''), +(547118219,994,0,NULL,4,'','',0,0,NULL,NULL,''),(547119242,994,0,NULL,5,'','',0,0,NULL,NULL,''), +(547115151,995,0,NULL,1,'','',0,0,NULL,NULL,''),(547116174,995,0,NULL,2,'','',0,0,NULL,NULL,''), +(547117197,995,0,NULL,3,'','',0,0,NULL,NULL,''),(547118220,995,0,NULL,4,'','',0,0,NULL,NULL,''), +(547118223,998,0,NULL,4,'','',0,0,NULL,NULL,''),(547119246,998,0,NULL,5,'','',0,0,NULL,NULL,''), +(547115155,999,0,NULL,1,'','',0,0,NULL,NULL,''),(547116178,999,0,NULL,2,'','',0,0,NULL,NULL,''), +(547117201,999,0,NULL,3,'','',0,0,NULL,NULL,''),(547118224,999,0,NULL,4,'','',0,0,NULL,NULL,''), +(547119271,38928081,0,NULL,10,'','',0,0,NULL,NULL,''),(547119272,38928081,0,NULL,11,'','',0,0,NULL,NULL,''), +(547119273,38928081,0,NULL,12,'','',0,0,NULL,NULL,''),(547119274,38928081,0,NULL,13,'','',0,0,NULL,NULL,''), +(547119275,38928081,0,NULL,14,'','',0,0,NULL,NULL,''),(547119276,38928081,0,NULL,15,'','',0,0,NULL,NULL,''), +(547119277,38928081,0,NULL,16,'','',0,0,NULL,NULL,''),(547119278,38928081,0,NULL,17,'','',0,0,NULL,NULL,''), +(547119279,38928081,0,NULL,18,'','',0,0,NULL,NULL,''),(547119280,38928081,0,NULL,19,'','',0,0,NULL,NULL,''); +CREATE TABLE t3 ( +old_id int(10) unsigned NOT NULL AUTO_INCREMENT, +old_text mediumblob NOT NULL, +old_flags tinyblob NOT NULL, +PRIMARY KEY (old_id) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +INSERT INTO t3 VALUES +(1,'text-0',''),(2,'text-1000',''),(3,'text-2000',''),(4,'text-3000',''), +(5,'text-4000',''),(6,'text-5000',''),(7,'text-6000',''),(8,'text-7000',''), +(9,'text-8000',''),(10,'text-9000',''),(11,'text-1',''),(12,'text-1001',''), +(13,'text-2001',''),(14,'text-3001',''),(15,'text-4001',''),(16,'text-5001',''), +(17,'text-6001',''),(18,'text-7001',''),(19,'text-8001',''),(20,'text-9001',''), +(21,'text-2',''),(22,'text-1002',''),(23,'text-2002',''),(24,'text-3002',''), +(25,'text-4002',''),(26,'text-5002',''),(27,'text-6002',''),(28,'text-7002',''), +(29,'text-8002',''),(30,'text-9002',''),(31,'text-3',''),(32,'text-1003',''), +(33,'text-2003',''),(34,'text-3003',''),(35,'text-4003',''),(36,'text-5003',''), +(37,'text-6003',''),(38,'text-7003',''),(39,'text-8003',''),(40,'text-9003',''), +(41,'text-4',''),(42,'text-1004',''),(43,'text-2004',''),(44,'text-3004',''), +(45,'text-4004',''),(46,'text-5004',''),(47,'text-6004',''),(48,'text-7004',''), +(49,'text-8004',''),(50,'text-9004',''),(51,'text-5',''),(52,'text-1005',''), +(53,'text-2005',''),(54,'text-3005',''),(55,'text-4005',''),(56,'text-5005',''), +(57,'text-6005',''),(58,'text-7005',''),(59,'text-8005',''),(60,'text-9005',''), +(61,'text-6',''),(62,'text-1006',''),(63,'text-2006',''),(64,'text-3006',''), +(65,'text-4006',''),(66,'text-5006',''),(67,'text-6006',''),(68,'text-7006',''), +(69,'text-8006',''),(70,'text-9006',''),(71,'text-7',''),(72,'text-1007',''), +(73,'text-2007',''),(74,'text-3007',''),(75,'text-4007',''),(76,'text-5007',''), +(77,'text-6007',''),(78,'text-7007',''),(79,'text-8007',''),(80,'text-9007',''), +(81,'text-8',''),(82,'text-1008',''),(83,'text-2008',''),(84,'text-3008',''), +(85,'text-4008',''),(86,'text-5008',''),(87,'text-6008',''),(88,'text-7008',''), +(89,'text-8008',''),(90,'text-9008',''),(91,'text-9',''),(92,'text-1009',''), +(93,'text-2009',''),(94,'text-3009',''),(95,'text-4009',''),(96,'text-5009',''), +(97,'text-6009',''),(98,'text-7009',''),(99,'text-8009',''),(100,'text-9009',''); +set optimizer_switch='extended_keys=off'; +EXPLAIN +SELECT * FROM t1, t2 IGNORE INDEX (PRIMARY), t3 +WHERE page_id=rev_page AND rev_text_id=old_id AND page_namespace=4 AND page_title='Sandbox' +ORDER BY rev_timestamp ASC LIMIT 10; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 const PRIMARY,name_title name_title 261 const,const 1 +1 SIMPLE t2 ref page_timestamp page_timestamp 4 const 10 Using where +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.rev_text_id 1 +set optimizer_switch='extended_keys=on'; +EXPLAIN +SELECT * FROM t1, t2 IGNORE INDEX (PRIMARY), t3 +WHERE page_id=rev_page AND rev_text_id=old_id AND page_namespace=4 AND page_title='Sandbox' +ORDER BY rev_timestamp ASC LIMIT 10; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 const PRIMARY,name_title name_title 261 const,const 1 +1 SIMPLE t2 ref page_timestamp page_timestamp 4 const 10 Using where +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.rev_text_id 1 +DROP TABLE t1,t2,t3; set optimizer_switch=@save_optimizer_switch; set optimizer_switch=@save_ext_key_optimizer_switch; SET SESSION STORAGE_ENGINE=DEFAULT; diff --git a/mysql-test/t/innodb_ext_key.test b/mysql-test/t/innodb_ext_key.test index 31c6fca2b95..36414105917 100644 --- a/mysql-test/t/innodb_ext_key.test +++ b/mysql-test/t/innodb_ext_key.test @@ -539,6 +539,129 @@ select * from t1, t3 where t3.col1=t1.a and t3.col2=t1.a and t3.pk1=t1.a; drop table t1,t2,t3; +--echo # +--echo # Bug mdev-4340: performance regression with extended_keys=on +--echo # + +set @save_optimizer_switch=@@optimizer_switch; + +CREATE TABLE t1 ( + page_id int(8) unsigned NOT NULL AUTO_INCREMENT, + page_namespace int(11) NOT NULL DEFAULT '0', + page_title varbinary(255) NOT NULL DEFAULT '', + page_restrictions tinyblob NOT NULL, + page_counter bigint(20) unsigned NOT NULL DEFAULT '0', + page_is_redirect tinyint(1) unsigned NOT NULL DEFAULT '0', + page_is_new tinyint(1) unsigned NOT NULL DEFAULT '0', + page_random double unsigned NOT NULL DEFAULT '0', + page_touched varbinary(14) NOT NULL DEFAULT '', + page_latest int(8) unsigned NOT NULL DEFAULT '0', + page_len int(8) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (page_id), + UNIQUE KEY name_title (page_namespace,page_title), + KEY page_random (page_random), + KEY page_len (page_len), + KEY page_redirect_namespace_len (page_is_redirect,page_namespace,page_len) +) ENGINE=InnoDB AUTO_INCREMENT=38929100 DEFAULT CHARSET=binary; +INSERT INTO t1 VALUES +(38928077,0,'Sandbox','',0,0,0,0,'',0,0),(38928078,1,'Sandbox','',0,0,0,1,'',0,0), +(38928079,2,'Sandbox','',0,0,0,2,'',0,0),(38928080,3,'Sandbox','',0,0,0,3,'',0,0), +(38928081,4,'Sandbox','',0,0,0,4,'',0,0),(38928082,5,'Sandbox','',0,0,0,5,'',0,0); + +CREATE TABLE t2 ( + rev_id int(8) unsigned NOT NULL AUTO_INCREMENT, + rev_page int(8) unsigned NOT NULL DEFAULT '0', + rev_text_id int(8) unsigned NOT NULL DEFAULT '0', + rev_comment varbinary(255) DEFAULT NULL, + rev_user int(5) unsigned NOT NULL DEFAULT '0', + rev_user_text varbinary(255) NOT NULL DEFAULT '', + rev_timestamp varbinary(14) NOT NULL DEFAULT '', + rev_minor_edit tinyint(1) unsigned NOT NULL DEFAULT '0', + rev_deleted tinyint(1) unsigned NOT NULL DEFAULT '0', + rev_len int(8) unsigned DEFAULT NULL, + rev_parent_id int(8) unsigned DEFAULT NULL, + rev_sha1 varbinary(32) NOT NULL DEFAULT '', + PRIMARY KEY (rev_page,rev_id), + UNIQUE KEY rev_id (rev_id), + KEY rev_timestamp (rev_timestamp), + KEY page_timestamp (rev_page,rev_timestamp), + KEY user_timestamp (rev_user,rev_timestamp), + KEY usertext_timestamp (rev_user_text,rev_timestamp,rev_user,rev_deleted,rev_minor_edit,rev_text_id,rev_comment) +) ENGINE=InnoDB DEFAULT CHARSET=binary; +INSERT INTO t2 VALUES +(547116222,20,0,NULL,3,'','',0,0,NULL,NULL,''),(547117245,20,0,NULL,4,'','',0,0,NULL,NULL,''), +(547118268,20,0,NULL,5,'','',0,0,NULL,NULL,''),(547114177,21,0,NULL,1,'','',0,0,NULL,NULL,''), +(547115200,21,0,NULL,2,'','',0,0,NULL,NULL,''),(547116223,21,0,NULL,3,'','',0,0,NULL,NULL,''), +(547117246,21,0,NULL,4,'','',0,0,NULL,NULL,''),(547118269,21,0,NULL,5,'','',0,0,NULL,NULL,''), +(547114178,22,0,NULL,1,'','',0,0,NULL,NULL,''),(547115201,22,0,NULL,2,'','',0,0,NULL,NULL,''), +(547116224,22,0,NULL,3,'','',0,0,NULL,NULL,''),(547117247,22,0,NULL,4,'','',0,0,NULL,NULL,''), +(547116226,24,0,NULL,3,'','',0,0,NULL,NULL,''),(547117249,24,0,NULL,4,'','',0,0,NULL,NULL,''), +(547118272,24,0,NULL,5,'','',0,0,NULL,NULL,''),(547114181,25,0,NULL,1,'','',0,0,NULL,NULL,''), +(547115204,25,0,NULL,2,'','',0,0,NULL,NULL,''),(547116227,25,0,NULL,3,'','',0,0,NULL,NULL,''), +(547116157,978,0,NULL,2,'','',0,0,NULL,NULL,''),(547117180,978,0,NULL,3,'','',0,0,NULL,NULL,''), +(547118203,978,0,NULL,4,'','',0,0,NULL,NULL,''),(547119226,978,0,NULL,5,'','',0,0,NULL,NULL,''), +(547115135,979,0,NULL,1,'','',0,0,NULL,NULL,''),(547116158,979,0,NULL,2,'','',0,0,NULL,NULL,''), +(547116173,994,0,NULL,2,'','',0,0,NULL,NULL,''),(547117196,994,0,NULL,3,'','',0,0,NULL,NULL,''), +(547118219,994,0,NULL,4,'','',0,0,NULL,NULL,''),(547119242,994,0,NULL,5,'','',0,0,NULL,NULL,''), +(547115151,995,0,NULL,1,'','',0,0,NULL,NULL,''),(547116174,995,0,NULL,2,'','',0,0,NULL,NULL,''), +(547117197,995,0,NULL,3,'','',0,0,NULL,NULL,''),(547118220,995,0,NULL,4,'','',0,0,NULL,NULL,''), +(547118223,998,0,NULL,4,'','',0,0,NULL,NULL,''),(547119246,998,0,NULL,5,'','',0,0,NULL,NULL,''), +(547115155,999,0,NULL,1,'','',0,0,NULL,NULL,''),(547116178,999,0,NULL,2,'','',0,0,NULL,NULL,''), +(547117201,999,0,NULL,3,'','',0,0,NULL,NULL,''),(547118224,999,0,NULL,4,'','',0,0,NULL,NULL,''), +(547119271,38928081,0,NULL,10,'','',0,0,NULL,NULL,''),(547119272,38928081,0,NULL,11,'','',0,0,NULL,NULL,''), +(547119273,38928081,0,NULL,12,'','',0,0,NULL,NULL,''),(547119274,38928081,0,NULL,13,'','',0,0,NULL,NULL,''), +(547119275,38928081,0,NULL,14,'','',0,0,NULL,NULL,''),(547119276,38928081,0,NULL,15,'','',0,0,NULL,NULL,''), +(547119277,38928081,0,NULL,16,'','',0,0,NULL,NULL,''),(547119278,38928081,0,NULL,17,'','',0,0,NULL,NULL,''), +(547119279,38928081,0,NULL,18,'','',0,0,NULL,NULL,''),(547119280,38928081,0,NULL,19,'','',0,0,NULL,NULL,''); + +CREATE TABLE t3 ( + old_id int(10) unsigned NOT NULL AUTO_INCREMENT, + old_text mediumblob NOT NULL, + old_flags tinyblob NOT NULL, + PRIMARY KEY (old_id) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +INSERT INTO t3 VALUES +(1,'text-0',''),(2,'text-1000',''),(3,'text-2000',''),(4,'text-3000',''), +(5,'text-4000',''),(6,'text-5000',''),(7,'text-6000',''),(8,'text-7000',''), +(9,'text-8000',''),(10,'text-9000',''),(11,'text-1',''),(12,'text-1001',''), +(13,'text-2001',''),(14,'text-3001',''),(15,'text-4001',''),(16,'text-5001',''), +(17,'text-6001',''),(18,'text-7001',''),(19,'text-8001',''),(20,'text-9001',''), +(21,'text-2',''),(22,'text-1002',''),(23,'text-2002',''),(24,'text-3002',''), +(25,'text-4002',''),(26,'text-5002',''),(27,'text-6002',''),(28,'text-7002',''), +(29,'text-8002',''),(30,'text-9002',''),(31,'text-3',''),(32,'text-1003',''), +(33,'text-2003',''),(34,'text-3003',''),(35,'text-4003',''),(36,'text-5003',''), +(37,'text-6003',''),(38,'text-7003',''),(39,'text-8003',''),(40,'text-9003',''), +(41,'text-4',''),(42,'text-1004',''),(43,'text-2004',''),(44,'text-3004',''), +(45,'text-4004',''),(46,'text-5004',''),(47,'text-6004',''),(48,'text-7004',''), +(49,'text-8004',''),(50,'text-9004',''),(51,'text-5',''),(52,'text-1005',''), +(53,'text-2005',''),(54,'text-3005',''),(55,'text-4005',''),(56,'text-5005',''), +(57,'text-6005',''),(58,'text-7005',''),(59,'text-8005',''),(60,'text-9005',''), +(61,'text-6',''),(62,'text-1006',''),(63,'text-2006',''),(64,'text-3006',''), +(65,'text-4006',''),(66,'text-5006',''),(67,'text-6006',''),(68,'text-7006',''), +(69,'text-8006',''),(70,'text-9006',''),(71,'text-7',''),(72,'text-1007',''), +(73,'text-2007',''),(74,'text-3007',''),(75,'text-4007',''),(76,'text-5007',''), +(77,'text-6007',''),(78,'text-7007',''),(79,'text-8007',''),(80,'text-9007',''), +(81,'text-8',''),(82,'text-1008',''),(83,'text-2008',''),(84,'text-3008',''), +(85,'text-4008',''),(86,'text-5008',''),(87,'text-6008',''),(88,'text-7008',''), +(89,'text-8008',''),(90,'text-9008',''),(91,'text-9',''),(92,'text-1009',''), +(93,'text-2009',''),(94,'text-3009',''),(95,'text-4009',''),(96,'text-5009',''), +(97,'text-6009',''),(98,'text-7009',''),(99,'text-8009',''),(100,'text-9009',''); + + +set optimizer_switch='extended_keys=off'; +EXPLAIN +SELECT * FROM t1, t2 IGNORE INDEX (PRIMARY), t3 + WHERE page_id=rev_page AND rev_text_id=old_id AND page_namespace=4 AND page_title='Sandbox' +ORDER BY rev_timestamp ASC LIMIT 10; + +set optimizer_switch='extended_keys=on'; +EXPLAIN +SELECT * FROM t1, t2 IGNORE INDEX (PRIMARY), t3 + WHERE page_id=rev_page AND rev_text_id=old_id AND page_namespace=4 AND page_title='Sandbox' +ORDER BY rev_timestamp ASC LIMIT 10; + +DROP TABLE t1,t2,t3; + set optimizer_switch=@save_optimizer_switch; set optimizer_switch=@save_ext_key_optimizer_switch; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index a1d8d3c62e2..6d80ea8d212 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -3523,9 +3523,16 @@ make_join_statistics(JOIN *join, List &tables_list, !table->fulltext_searched && (!embedding || (embedding->sj_on_expr && !embedding->embedding))) { + key_map base_part, base_const_ref, base_eq_part; + base_part.set_prefix(keyinfo->key_parts); + base_const_ref= const_ref; + base_const_ref.intersect(base_part); + base_eq_part= eq_part; + base_eq_part.intersect(base_part); if (table->actual_key_flags(keyinfo) & HA_NOSAME) { - if (const_ref == eq_part && + + if (base_const_ref == base_eq_part && !has_expensive_keyparts && !((outer_join & table->map) && (*s->on_expr_ref)->is_expensive())) @@ -3551,7 +3558,7 @@ make_join_statistics(JOIN *join, List &tables_list, else found_ref|= refs; // Table is const if all refs are const } - else if (const_ref == eq_part) + else if (base_const_ref == base_eq_part) s->const_keys.set_bit(key); } } From 2ffc7d73b90b1a1cd9587c8941ed91f1c91a2e78 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Sun, 28 Apr 2013 14:28:46 +0200 Subject: [PATCH 117/172] fix test on Windows --- mysql-test/suite/plugins/t/audit_null.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql-test/suite/plugins/t/audit_null.test b/mysql-test/suite/plugins/t/audit_null.test index 47491668529..60883bbe4f9 100644 --- a/mysql-test/suite/plugins/t/audit_null.test +++ b/mysql-test/suite/plugins/t/audit_null.test @@ -54,6 +54,6 @@ drop user testuser@localhost; set global general_log=@old_global_general_log; let $MYSQLD_DATADIR= `SELECT @@datadir`; ---replace_regex /#sql-[0-9a-f_]*/#sql-temporary/ /#sql2-[-0-9a-f_]*/#sql2-temporary/ +--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/ /#sql2-[-0-9a-f_]*/#sql2-temporary/ /::1// /127.0.0.1// cat_file $MYSQLD_DATADIR/audit_null_tables.log; From 8d75f11a67d620727b87ef3a00d61a6f92418817 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Tue, 30 Apr 2013 00:29:47 +0200 Subject: [PATCH 118/172] MDEV-4458 - Windows installer does not launch upgrade wizard anymore, even if there are upgradable instances (i.e windows service of lower MariaDB/MySQL version) The main reason for he error is misplaced ADD_DIRECTORY in top-level CMakeLists.txt. ADD_DIRECTORY(win/packaging) was places before win/upgrade_wizard, and MSI was not able to detect that upgrade wizard was built, and thus excluded upgrade wizard entirely. --- CMakeLists.txt | 2 +- win/packaging/ca/CustomAction.cpp | 2 +- win/packaging/extra.wxs.in | 11 +++++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b8d52feedb..1bae7e81f5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -329,8 +329,8 @@ INCLUDE(cmake/abi_check.cmake) INCLUDE(cmake/tags.cmake) IF(WIN32) - ADD_SUBDIRECTORY(win/packaging) ADD_SUBDIRECTORY(win/upgrade_wizard) + ADD_SUBDIRECTORY(win/packaging) ENDIF() CONFIGURE_FILE(config.h.cmake ${CMAKE_BINARY_DIR}/include/my_config.h) diff --git a/win/packaging/ca/CustomAction.cpp b/win/packaging/ca/CustomAction.cpp index 50b39adc0b1..67a17c2cc19 100644 --- a/win/packaging/ca/CustomAction.cpp +++ b/win/packaging/ca/CustomAction.cpp @@ -895,7 +895,7 @@ extern "C" UINT __stdcall CheckServiceUpgrades(MSIHANDLE hInstall) Only look for services that have mysqld.exe outside of the current installation directory. */ - if(strstr(props.mysqld_exe,installDir) == 0) + if(installDir[0] == 0 || strstr(props.mysqld_exe,installDir) == 0) { WcaLog(LOGMSG_STANDARD, "found service %S, major=%d, minor=%d", info[i].lpServiceName, props.version_major, props.version_minor); diff --git a/win/packaging/extra.wxs.in b/win/packaging/extra.wxs.in index ff1a529a2ee..e0a36ef2e41 100644 --- a/win/packaging/extra.wxs.in +++ b/win/packaging/extra.wxs.in @@ -151,6 +151,9 @@ CreateOrUpgradeChoice = "Upgrade" CreateOrUpgradeChoice = "Create" + CreateOrUpgradeChoice = "Create" + CreateOrUpgradeChoice = "Create" + CreateOrUpgradeChoice = "Upgrade" 1 @@ -823,7 +826,7 @@ - + - $C.bin.mysql_upgrade_wizard.exe = 3 AND NOT Installed + $C.bin.mysql_upgrade_wizard.exe = 3 AND NOT Installed AND NOT OLDERVERSIONBEINGUPGRADED - 3) AND NOT Installed]]> + 3) AND NOT Installed OR OLDERVERSIONBEINGUPGRADED]]> - 3) AND NOT Installed]]> + 3) AND NOT Installed OR OLDERVERSIONBEINGUPGRADED]]> From 86f43c30771cdfbb38f1a958de0e7f131451a988 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Mon, 29 Apr 2013 20:31:40 -0700 Subject: [PATCH 119/172] Fixed bug mdev-4274. This bug was the result of incompleteness of the patch for bug mdev-4177. When an OR condition is simplified to a single conjunct it is merged into the embedding AND condition. Multiple equalities are also merged, and any field item involved in those equality should acquire a pointer to a the multiple equality formed by this merge. --- mysql-test/r/select.result | 35 +++++++++++++++++++++++++ mysql-test/r/select_jcl6.result | 35 +++++++++++++++++++++++++ mysql-test/r/select_pkeycache.result | 35 +++++++++++++++++++++++++ mysql-test/r/subselect_sj2_mat.result | 2 +- mysql-test/t/select.test | 37 +++++++++++++++++++++++++++ sql/sql_select.cc | 19 +++++++++++++- 6 files changed, 161 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result index 3d1dc5ec170..953b1409827 100644 --- a/mysql-test/r/select.result +++ b/mysql-test/r/select.result @@ -5049,6 +5049,7 @@ SELECT 1 FROM t1 GROUP BY 1; 1 1 drop table t1; +set sql_buffer_result= 0; End of 5.1 tests # # BUG#776274: substitution of a single row table @@ -5132,4 +5133,38 @@ AND Time_zone_id = Time_zone_id OR Time_zone_id <> Time_zone_id ) AND Use_leap_seconds <> 'N'; Time_zone_id Use_leap_seconds +# +# Bug mdev-4274: result of simplification of OR badly merged +# into embedding AND +# +CREATE TABLE t1 (a int, b int, INDEX idx(b)) ENGINE=MyISAM; +INSERT INTO t1 VALUES (8,8); +CREATE TABLE t2 (c int, INDEX idx(c)) ENGINE=MyISAM; +INSERT INTO t2 VALUES (8), (9); +EXPLAIN EXTENDED +SELECT * FROM t1 INNER JOIN t2 ON ( c = a ) +WHERE 1 IS NULL OR b < 33 AND b = c; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 system idx NULL NULL NULL 1 100.00 +1 SIMPLE t2 ref idx idx 5 const 1 100.00 Using index +Warnings: +Note 1003 select 8 AS `a`,8 AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`c` = 8) and (8 < 33)) +SELECT * FROM t1 INNER JOIN t2 ON ( c = a ) +WHERE 1 IS NULL OR b < 33 AND b = c; +a b c +8 8 8 +DROP TABLE t1,t2; +# +# Bug mdev-4413: another manifestations of bug mdev-2474 +# (valgrind complains) +# +CREATE TABLE t1 (a int, b int) ENGINE=MyISAM; +INSERT INTO t1 VALUES (7,1); +CREATE TABLE t2 (c int) ENGINE=MyISAM; +INSERT INTO t2 VALUES (0), (8); +SELECT * FROM t1, t2 +WHERE c = a AND +( 0 OR ( b BETWEEN 45 AND 300 OR a > 45 AND a < 100 ) AND b = c ); +a b c +DROP TABLE t1, t2; End of 5.3 tests diff --git a/mysql-test/r/select_jcl6.result b/mysql-test/r/select_jcl6.result index e2e0db128b3..d2faa9e85e1 100644 --- a/mysql-test/r/select_jcl6.result +++ b/mysql-test/r/select_jcl6.result @@ -5060,6 +5060,7 @@ SELECT 1 FROM t1 GROUP BY 1; 1 1 drop table t1; +set sql_buffer_result= 0; End of 5.1 tests # # BUG#776274: substitution of a single row table @@ -5143,6 +5144,40 @@ AND Time_zone_id = Time_zone_id OR Time_zone_id <> Time_zone_id ) AND Use_leap_seconds <> 'N'; Time_zone_id Use_leap_seconds +# +# Bug mdev-4274: result of simplification of OR badly merged +# into embedding AND +# +CREATE TABLE t1 (a int, b int, INDEX idx(b)) ENGINE=MyISAM; +INSERT INTO t1 VALUES (8,8); +CREATE TABLE t2 (c int, INDEX idx(c)) ENGINE=MyISAM; +INSERT INTO t2 VALUES (8), (9); +EXPLAIN EXTENDED +SELECT * FROM t1 INNER JOIN t2 ON ( c = a ) +WHERE 1 IS NULL OR b < 33 AND b = c; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 system idx NULL NULL NULL 1 100.00 +1 SIMPLE t2 ref idx idx 5 const 1 100.00 Using index +Warnings: +Note 1003 select 8 AS `a`,8 AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`c` = 8) and (8 < 33)) +SELECT * FROM t1 INNER JOIN t2 ON ( c = a ) +WHERE 1 IS NULL OR b < 33 AND b = c; +a b c +8 8 8 +DROP TABLE t1,t2; +# +# Bug mdev-4413: another manifestations of bug mdev-2474 +# (valgrind complains) +# +CREATE TABLE t1 (a int, b int) ENGINE=MyISAM; +INSERT INTO t1 VALUES (7,1); +CREATE TABLE t2 (c int) ENGINE=MyISAM; +INSERT INTO t2 VALUES (0), (8); +SELECT * FROM t1, t2 +WHERE c = a AND +( 0 OR ( b BETWEEN 45 AND 300 OR a > 45 AND a < 100 ) AND b = c ); +a b c +DROP TABLE t1, t2; End of 5.3 tests set join_cache_level=default; show variables like 'join_cache_level'; diff --git a/mysql-test/r/select_pkeycache.result b/mysql-test/r/select_pkeycache.result index 3d1dc5ec170..953b1409827 100644 --- a/mysql-test/r/select_pkeycache.result +++ b/mysql-test/r/select_pkeycache.result @@ -5049,6 +5049,7 @@ SELECT 1 FROM t1 GROUP BY 1; 1 1 drop table t1; +set sql_buffer_result= 0; End of 5.1 tests # # BUG#776274: substitution of a single row table @@ -5132,4 +5133,38 @@ AND Time_zone_id = Time_zone_id OR Time_zone_id <> Time_zone_id ) AND Use_leap_seconds <> 'N'; Time_zone_id Use_leap_seconds +# +# Bug mdev-4274: result of simplification of OR badly merged +# into embedding AND +# +CREATE TABLE t1 (a int, b int, INDEX idx(b)) ENGINE=MyISAM; +INSERT INTO t1 VALUES (8,8); +CREATE TABLE t2 (c int, INDEX idx(c)) ENGINE=MyISAM; +INSERT INTO t2 VALUES (8), (9); +EXPLAIN EXTENDED +SELECT * FROM t1 INNER JOIN t2 ON ( c = a ) +WHERE 1 IS NULL OR b < 33 AND b = c; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 system idx NULL NULL NULL 1 100.00 +1 SIMPLE t2 ref idx idx 5 const 1 100.00 Using index +Warnings: +Note 1003 select 8 AS `a`,8 AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`c` = 8) and (8 < 33)) +SELECT * FROM t1 INNER JOIN t2 ON ( c = a ) +WHERE 1 IS NULL OR b < 33 AND b = c; +a b c +8 8 8 +DROP TABLE t1,t2; +# +# Bug mdev-4413: another manifestations of bug mdev-2474 +# (valgrind complains) +# +CREATE TABLE t1 (a int, b int) ENGINE=MyISAM; +INSERT INTO t1 VALUES (7,1); +CREATE TABLE t2 (c int) ENGINE=MyISAM; +INSERT INTO t2 VALUES (0), (8); +SELECT * FROM t1, t2 +WHERE c = a AND +( 0 OR ( b BETWEEN 45 AND 300 OR a > 45 AND a < 100 ) AND b = c ); +a b c +DROP TABLE t1, t2; End of 5.3 tests diff --git a/mysql-test/r/subselect_sj2_mat.result b/mysql-test/r/subselect_sj2_mat.result index bf5b95d2d8f..18e3f6ddd34 100644 --- a/mysql-test/r/subselect_sj2_mat.result +++ b/mysql-test/r/subselect_sj2_mat.result @@ -1380,7 +1380,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 100.00 Using where 2 MATERIALIZED t3 hash_ALL NULL #hash#$hj 5 test.t2.i2 3 100.00 Using where; Using join buffer (flat, BNLH join) Warnings: -Note 1003 select `test`.`t1`.`i1` AS `i1` from `test`.`t1` semi join (`test`.`t2` join `test`.`t3`) where ((`test`.`t3`.`i3` = `test`.`t2`.`i2`) and (`test`.`t1`.`i1` = `test`.`t2`.`i2`) and (`test`.`t3`.`i3` > 0)) +Note 1003 select `test`.`t1`.`i1` AS `i1` from `test`.`t1` semi join (`test`.`t2` join `test`.`t3`) where ((`test`.`t3`.`i3` = `test`.`t2`.`i2`) and (`test`.`t1`.`i1` = `test`.`t2`.`i2`) and (`test`.`t2`.`i2` > 0)) SELECT * FROM t1 WHERE i1 IN (SELECT i3 FROM t2, t3 WHERE i3 > 0 AND i3 = i2 OR 1=2); i1 diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test index e202e013377..54168332664 100644 --- a/mysql-test/t/select.test +++ b/mysql-test/t/select.test @@ -4241,6 +4241,7 @@ SELECT f1 FROM t1 GROUP BY 1; SELECT f1 FROM t1 GROUP BY '123' = 'abc'; SELECT 1 FROM t1 GROUP BY 1; drop table t1; +set sql_buffer_result= 0; --echo End of 5.1 tests @@ -4305,4 +4306,40 @@ WHERE ( NOT (Use_leap_seconds <= Use_leap_seconds AND Time_zone_id != 1) OR Time_zone_id <> Time_zone_id ) AND Use_leap_seconds <> 'N'; +--echo # +--echo # Bug mdev-4274: result of simplification of OR badly merged +--echo # into embedding AND +--echo # + +CREATE TABLE t1 (a int, b int, INDEX idx(b)) ENGINE=MyISAM; +INSERT INTO t1 VALUES (8,8); + +CREATE TABLE t2 (c int, INDEX idx(c)) ENGINE=MyISAM; +INSERT INTO t2 VALUES (8), (9); + +EXPLAIN EXTENDED +SELECT * FROM t1 INNER JOIN t2 ON ( c = a ) + WHERE 1 IS NULL OR b < 33 AND b = c; +SELECT * FROM t1 INNER JOIN t2 ON ( c = a ) + WHERE 1 IS NULL OR b < 33 AND b = c; + +DROP TABLE t1,t2; + +--echo # +--echo # Bug mdev-4413: another manifestations of bug mdev-2474 +--echo # (valgrind complains) +--echo # + +CREATE TABLE t1 (a int, b int) ENGINE=MyISAM; +INSERT INTO t1 VALUES (7,1); + +CREATE TABLE t2 (c int) ENGINE=MyISAM; +INSERT INTO t2 VALUES (0), (8); + +SELECT * FROM t1, t2 + WHERE c = a AND + ( 0 OR ( b BETWEEN 45 AND 300 OR a > 45 AND a < 100 ) AND b = c ); + +DROP TABLE t1, t2; + --echo End of 5.3 tests diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 6432142597f..410244b88f0 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -13195,7 +13195,24 @@ remove_eq_conds(THD *thd, COND *cond, Item::cond_result *cond_value) if (new_item_and_list->is_empty()) li.remove(); else - li.replace(*new_item_and_list); + { + Item *list_item; + Item *new_list_item; + List_iterator it(*new_item_and_list); + while ((list_item= it++)) + { + uchar* is_subst_valid= (uchar *) Item::ANY_SUBST; + new_list_item= + list_item->compile(&Item::subst_argument_checker, + &is_subst_valid, + &Item::equal_fields_propagator, + (uchar *) &cond_and->cond_equal); + if (new_list_item != list_item) + it.replace(new_list_item); + new_list_item->update_used_tables(); + } + li.replace(*new_item_and_list); + } cond_and_list->concat((List*) cond_equal_items); } else if (new_item->type() == Item::FUNC_ITEM && From 6ed00c4d8a90129e7098bcb5fad5b01332e9882c Mon Sep 17 00:00:00 2001 From: Sergey Petrunya Date: Fri, 3 May 2013 00:10:43 +0400 Subject: [PATCH 120/172] MDEV-4465: Reproducible crash (mysqld got signal 11) in multi_delete::initialize_tables... - make multi_delete::initialize_tables() take into account that the JOIN structure may have semi-join nests (which are not fully initialized when this function is called, they have tab->table=NULL which caused the crash) - Also checked multi_update::initialize_tables(): it has a different logic and needed no fixing. --- mysql-test/r/subselect_mat.result | 14 ++++++++++++++ mysql-test/r/subselect_sj_mat.result | 14 ++++++++++++++ mysql-test/t/subselect_sj_mat.test | 19 +++++++++++++++++++ sql/sql_delete.cc | 2 +- 4 files changed, 48 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/subselect_mat.result b/mysql-test/r/subselect_mat.result index 53334dbc32b..0a98efb5c0e 100644 --- a/mysql-test/r/subselect_mat.result +++ b/mysql-test/r/subselect_mat.result @@ -1999,6 +1999,20 @@ b b v v b b s s b b y y DROP TABLE t1,t2; +# +# MDEV-4465: Reproducible crash (mysqld got signal 11) in multi_delete::initialize_tables with semijoin+materialization +# +CREATE TABLE t1 ( +id int(11) NOT NULL +); +CREATE TABLE t2 ( +id int(11) NOT NULL, +a_id int(11) DEFAULT NULL +); +insert into t1 values (1), (2), (3); +insert into t2 values (1, 1), (2, 1), (3, 1), (4, 2), (5, 3), (6, 3), (7, 3); +delete t2 from t2 where a_id in (select * from (select t1.id from t1 limit 2) as x); +drop table t1,t2; # This must be at the end: set optimizer_switch=@subselect_sj_mat_tmp; set join_cache_level=@save_join_cache_level; diff --git a/mysql-test/r/subselect_sj_mat.result b/mysql-test/r/subselect_sj_mat.result index 549282c9dbe..4e8d1697b83 100644 --- a/mysql-test/r/subselect_sj_mat.result +++ b/mysql-test/r/subselect_sj_mat.result @@ -2039,6 +2039,20 @@ b b v v b b s s b b y y DROP TABLE t1,t2; +# +# MDEV-4465: Reproducible crash (mysqld got signal 11) in multi_delete::initialize_tables with semijoin+materialization +# +CREATE TABLE t1 ( +id int(11) NOT NULL +); +CREATE TABLE t2 ( +id int(11) NOT NULL, +a_id int(11) DEFAULT NULL +); +insert into t1 values (1), (2), (3); +insert into t2 values (1, 1), (2, 1), (3, 1), (4, 2), (5, 3), (6, 3), (7, 3); +delete t2 from t2 where a_id in (select * from (select t1.id from t1 limit 2) as x); +drop table t1,t2; # This must be at the end: set optimizer_switch=@subselect_sj_mat_tmp; set join_cache_level=@save_join_cache_level; diff --git a/mysql-test/t/subselect_sj_mat.test b/mysql-test/t/subselect_sj_mat.test index 4c40b2b5487..711f2f4f9b6 100644 --- a/mysql-test/t/subselect_sj_mat.test +++ b/mysql-test/t/subselect_sj_mat.test @@ -1677,6 +1677,25 @@ SELECT * FROM t1, t2 WHERE b1 IN ( SELECT b2 FROM t2 WHERE b1 > 'o' ) AND ( b1 < DROP TABLE t1,t2; +--echo # +--echo # MDEV-4465: Reproducible crash (mysqld got signal 11) in multi_delete::initialize_tables with semijoin+materialization +--echo # +CREATE TABLE t1 ( + id int(11) NOT NULL +); + +CREATE TABLE t2 ( + id int(11) NOT NULL, + a_id int(11) DEFAULT NULL +); + +insert into t1 values (1), (2), (3); +insert into t2 values (1, 1), (2, 1), (3, 1), (4, 2), (5, 3), (6, 3), (7, 3); + +delete t2 from t2 where a_id in (select * from (select t1.id from t1 limit 2) as x); + +drop table t1,t2; + --echo # This must be at the end: set optimizer_switch=@subselect_sj_mat_tmp; set join_cache_level=@save_join_cache_level; diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index 3c245807b47..64fd33bbc2c 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -677,7 +677,7 @@ multi_delete::initialize_tables(JOIN *join) tab; tab= next_linear_tab(join, tab, WITHOUT_BUSH_ROOTS)) { - if (tab->table->map & tables_to_delete_from) + if (!tab->bush_children && tab->table->map & tables_to_delete_from) { /* We are going to delete from this table */ TABLE *tbl=walk->table=tab->table; From 682c8a36ca503f53db50628463424f205b609ab0 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 3 May 2013 16:07:13 +0300 Subject: [PATCH 121/172] MDEV-4290: Fix agregate function resolution in derived tables (no name resolution over a derived table border) --- mysql-test/r/func_group.result | 28 ++++++++++++++++++++++++++++ mysql-test/t/func_group.test | 24 ++++++++++++++++++++++++ sql/item.h | 6 ++++++ sql/item_sum.cc | 21 ++++++++++++++++----- sql/sql_lex.cc | 1 + sql/sql_lex.h | 3 +++ 6 files changed, 78 insertions(+), 5 deletions(-) diff --git a/mysql-test/r/func_group.result b/mysql-test/r/func_group.result index bd77f800f67..5fa37f577e9 100644 --- a/mysql-test/r/func_group.result +++ b/mysql-test/r/func_group.result @@ -2097,3 +2097,31 @@ avg(export_set( 3, 'y', sha(i))) group_concat(d) 0 2008-10-02 0 2010-12-12 drop table t1; +# +# MDEV-4290: crash in st_select_lex::mark_as_dependent +# +create table `t1`(`a` int); +select 1 from t1 v1 right join t1 on count(*); +ERROR HY000: Invalid use of group function +select 1 from t1 order by +( +select 1 from +( +select 1 from t1 v1 right join t1 on count(*) +) v +); +ERROR HY000: Invalid use of group function +insert into t1 values (1),(1),(2),(2); +select count(*) from t1; +count(*) +4 +select z from (select count(*) as z from t1) v; +z +4 +# next is how it implemented now (may be changed in case of dependent +# derived tables) +select z from (select count(*) as z from t1) v group by 1; +z +4 +drop table t1; +# end of 5.3 tests diff --git a/mysql-test/t/func_group.test b/mysql-test/t/func_group.test index fef4d3b1de2..9f0d7e102da 100644 --- a/mysql-test/t/func_group.test +++ b/mysql-test/t/func_group.test @@ -1380,3 +1380,27 @@ insert into t1 values (1, '2008-10-02'), (2, '2010-12-12'); select avg(export_set( 3, 'y', sha(i))), group_concat(d) from t1 group by d order by i; drop table t1; +--echo # +--echo # MDEV-4290: crash in st_select_lex::mark_as_dependent +--echo # +create table `t1`(`a` int); + +--error ER_INVALID_GROUP_FUNC_USE +select 1 from t1 v1 right join t1 on count(*); +--error ER_INVALID_GROUP_FUNC_USE +select 1 from t1 order by +( + select 1 from + ( + select 1 from t1 v1 right join t1 on count(*) + ) v +); +insert into t1 values (1),(1),(2),(2); +select count(*) from t1; +select z from (select count(*) as z from t1) v; +--echo # next is how it implemented now (may be changed in case of dependent +--echo # derived tables) +select z from (select count(*) as z from t1) v group by 1; +drop table t1; + +--echo # end of 5.3 tests diff --git a/sql/item.h b/sql/item.h index 1e35c7839de..1938273c261 100644 --- a/sql/item.h +++ b/sql/item.h @@ -353,6 +353,12 @@ struct Name_resolution_context: Sql_alloc { (*error_processor)(thd, error_processor_data); } + st_select_lex *outer_select() + { + return (outer_context ? + outer_context->select_lex : + NULL); + } }; diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 3f2020efeb5..489c0f1c23e 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -53,7 +53,15 @@ bool Item_sum::init_sum_func_check(THD *thd) { - if (!thd->lex->allow_sum_func) + SELECT_LEX *curr_sel= thd->lex->current_select; + if (!curr_sel->name_visibility_map) + { + for (SELECT_LEX *sl= curr_sel; sl; sl= sl->context.outer_select()) + { + curr_sel->name_visibility_map|= (1 << sl-> nest_level); + } + } + if (!(thd->lex->allow_sum_func & curr_sel->name_visibility_map)) { my_message(ER_INVALID_GROUP_FUNC_USE, ER(ER_INVALID_GROUP_FUNC_USE), MYF(0)); @@ -124,8 +132,11 @@ bool Item_sum::init_sum_func_check(THD *thd) bool Item_sum::check_sum_func(THD *thd, Item **ref) { + SELECT_LEX *curr_sel= thd->lex->current_select; + nesting_map allow_sum_func= (thd->lex->allow_sum_func & + curr_sel->name_visibility_map); bool invalid= FALSE; - nesting_map allow_sum_func= thd->lex->allow_sum_func; + DBUG_ASSERT(curr_sel->name_visibility_map); // should be set already /* The value of max_arg_level is updated if an argument of the set function contains a column reference resolved against a subquery whose level is @@ -158,7 +169,7 @@ bool Item_sum::check_sum_func(THD *thd, Item **ref) if (!invalid && aggr_level < 0) { aggr_level= nest_level; - aggr_sel= thd->lex->current_select; + aggr_sel= curr_sel; } /* By this moment we either found a subquery where the set function is @@ -295,9 +306,9 @@ bool Item_sum::register_sum_func(THD *thd, Item **ref) { SELECT_LEX *sl; nesting_map allow_sum_func= thd->lex->allow_sum_func; - for (sl= thd->lex->current_select->master_unit()->outer_select() ; + for (sl= thd->lex->current_select->context.outer_select() ; sl && sl->nest_level > max_arg_level; - sl= sl->master_unit()->outer_select() ) + sl= sl->context.outer_select()) { if (aggr_level < 0 && (allow_sum_func & (1 << sl->nest_level))) { diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 5bacb675644..ab50ad99c28 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -1690,6 +1690,7 @@ void st_select_lex::init_select() merged_into= 0; m_non_agg_field_used= false; m_agg_func_used= false; + name_visibility_map= 0; } /* diff --git a/sql/sql_lex.h b/sql/sql_lex.h index a3240d3bcab..4b4496a7df8 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -783,6 +783,9 @@ public: */ List *prev_join_using; + /* namp of nesting SELECT visibility (for aggregate functions check) */ + nesting_map name_visibility_map; + void init_query(); void init_select(); st_select_lex_unit* master_unit(); From b3720ff7553ced6208737482d3410183cab4a545 Mon Sep 17 00:00:00 2001 From: Sergey Petrunya Date: Sat, 4 May 2013 00:56:50 +0400 Subject: [PATCH 122/172] MDEV-621: LP:693329 - Assertion `!is_interleave_error' failed on low optimizer_search_depth - When restore_prev_nj_state() is called for the table that is the last remaining child of a nested join, do not leave that nested join's bit in join->cur_embedding_map. --- mysql-test/r/join_nested.result | 24 ++++++++++++++++++++++++ mysql-test/t/join_nested.test | 24 ++++++++++++++++++++++++ sql/sql_select.cc | 4 ++-- 3 files changed, 50 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/join_nested.result b/mysql-test/r/join_nested.result index 255714a7236..84b6ff640e9 100644 --- a/mysql-test/r/join_nested.result +++ b/mysql-test/r/join_nested.result @@ -1847,3 +1847,27 @@ Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` A DROP TABLE t1,t2,t3,t4; SET optimizer_switch=@save_optimizer_switch; End of 5.0 tests +# +# MDEV-621: LP:693329 - Assertion `!is_interleave_error' failed on low optimizer_search_depth +# +set @tmp_mdev621= @@optimizer_search_depth; +SET SESSION optimizer_search_depth = 4; +CREATE TABLE t1 (f1 int,f2 int,f3 int,f4 int) ; +INSERT IGNORE INTO t1 VALUES (0,0,2,0),(NULL,0,2,0); +CREATE TABLE t2 (f1 int) ; +CREATE TABLE t3 (f3 int,PRIMARY KEY (f3)) ; +CREATE TABLE t4 (f5 int) ; +CREATE TABLE t5 (f2 int) ; +SELECT alias2.f4 FROM t1 AS alias1 +LEFT JOIN t1 AS alias2 +LEFT JOIN t2 AS alias3 +LEFT JOIN t3 AS alias4 ON alias3.f1 = alias4.f3 +ON alias2.f1 +LEFT JOIN t4 AS alias5 +JOIN t5 ON alias5.f5 +ON alias2.f3 ON alias1.f2; +f4 +NULL +NULL +DROP TABLE t1,t2,t3,t4,t5; +set optimizer_search_depth= @tmp_mdev621; diff --git a/mysql-test/t/join_nested.test b/mysql-test/t/join_nested.test index 3168e95f620..7b7d9236835 100644 --- a/mysql-test/t/join_nested.test +++ b/mysql-test/t/join_nested.test @@ -1287,3 +1287,27 @@ SET optimizer_switch=@save_optimizer_switch; --echo End of 5.0 tests +--echo # +--echo # MDEV-621: LP:693329 - Assertion `!is_interleave_error' failed on low optimizer_search_depth +--echo # +set @tmp_mdev621= @@optimizer_search_depth; +SET SESSION optimizer_search_depth = 4; + +CREATE TABLE t1 (f1 int,f2 int,f3 int,f4 int) ; +INSERT IGNORE INTO t1 VALUES (0,0,2,0),(NULL,0,2,0); +CREATE TABLE t2 (f1 int) ; +CREATE TABLE t3 (f3 int,PRIMARY KEY (f3)) ; +CREATE TABLE t4 (f5 int) ; +CREATE TABLE t5 (f2 int) ; + +SELECT alias2.f4 FROM t1 AS alias1 +LEFT JOIN t1 AS alias2 + LEFT JOIN t2 AS alias3 + LEFT JOIN t3 AS alias4 ON alias3.f1 = alias4.f3 + ON alias2.f1 +LEFT JOIN t4 AS alias5 + JOIN t5 ON alias5.f5 +ON alias2.f3 ON alias1.f2; +DROP TABLE t1,t2,t3,t4,t5; +set optimizer_search_depth= @tmp_mdev621; + diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 6d80ea8d212..4843d7be400 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -13262,13 +13262,13 @@ static void restore_prev_nj_state(JOIN_TAB *last) bool was_fully_covered= nest->is_fully_covered(); + join->cur_embedding_map|= nest->nj_map; + if (--nest->counter == 0) join->cur_embedding_map&= ~nest->nj_map; if (!was_fully_covered) break; - - join->cur_embedding_map|= nest->nj_map; } } } From c0ca15ab9c4c1838dfe89568391cdf40ed5fb1b6 Mon Sep 17 00:00:00 2001 From: Sergey Petrunya Date: Sat, 4 May 2013 01:08:20 +0400 Subject: [PATCH 123/172] MDEV-4270: crash in fix_semijoin_strategies_for_picked_join_order - Added testcase --- mysql-test/r/join_outer_innodb.result | 22 ++++++++++++++++++++++ mysql-test/t/join_outer_innodb.test | 23 +++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/mysql-test/r/join_outer_innodb.result b/mysql-test/r/join_outer_innodb.result index 0184e236d14..1081fc0eed3 100644 --- a/mysql-test/r/join_outer_innodb.result +++ b/mysql-test/r/join_outer_innodb.result @@ -476,3 +476,25 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t10 ALL PRIMARY NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join) drop view v1; drop table t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16; +# +# MDEV-4270: crash in fix_semijoin_strategies_for_picked_join_order +# +drop table if exists t1,t2,t3; +Warnings: +Note 1051 Unknown table 't1' +Note 1051 Unknown table 't2' +Note 1051 Unknown table 't3' +create table t2(a int,unique key (a)) engine=innodb; +create table t3(b int) engine=innodb; +create table t1(a int,b int)engine=innodb; +set @mdev4270_opl= @@optimizer_prune_level; +set @mdev4270_osd= @@optimizer_search_depth; +set optimizer_prune_level=0; +set optimizer_search_depth=2; +select 1 from t1 join t2 a +natural left join t2 b +natural right outer join t3; +1 +drop table t1,t2,t3; +set optimizer_prune_level=@mdev4270_opl; +set optimizer_search_depth=@mdev4270_osd; diff --git a/mysql-test/t/join_outer_innodb.test b/mysql-test/t/join_outer_innodb.test index adb555d5f85..539d85a8b11 100644 --- a/mysql-test/t/join_outer_innodb.test +++ b/mysql-test/t/join_outer_innodb.test @@ -350,3 +350,26 @@ explain select * from v1; drop view v1; drop table t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16; + + +--echo # +--echo # MDEV-4270: crash in fix_semijoin_strategies_for_picked_join_order +--echo # +drop table if exists t1,t2,t3; +create table t2(a int,unique key (a)) engine=innodb; +create table t3(b int) engine=innodb; +create table t1(a int,b int)engine=innodb; + +set @mdev4270_opl= @@optimizer_prune_level; +set @mdev4270_osd= @@optimizer_search_depth; +set optimizer_prune_level=0; +set optimizer_search_depth=2; + +select 1 from t1 join t2 a +natural left join t2 b +natural right outer join t3; + +drop table t1,t2,t3; +set optimizer_prune_level=@mdev4270_opl; +set optimizer_search_depth=@mdev4270_osd; + From b249680fd11f5c9102f7a22cf638f3872d5c2e61 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Fri, 3 May 2013 18:45:20 -0700 Subject: [PATCH 124/172] Made consistent handling of the predicates of the form IS NULL in outer joins with that in inner joins. Previously such condition was transformed into the condition = 0 unless the field belonged to an inner table of an outer join. In this case the predicate was interpreted as for any other field. Now if the field in the predicate IS NULL belongs to an inner table of an outer join the predicate is transformed into the disjunction = 0 OR IS NULL. This is fully compatible with the semantics of such predicates in 5.5. --- mysql-test/r/type_datetime.result | 16 +++++++++++++++ mysql-test/t/type_datetime.test | 15 ++++++++++++++ sql/sql_select.cc | 33 +++++++++++++++++++------------ 3 files changed, 51 insertions(+), 13 deletions(-) diff --git a/mysql-test/r/type_datetime.result b/mysql-test/r/type_datetime.result index 1019462cdb5..e32ee96cc82 100644 --- a/mysql-test/r/type_datetime.result +++ b/mysql-test/r/type_datetime.result @@ -665,4 +665,20 @@ Warning 1292 Incorrect datetime value: '10:19:31' Warning 1292 Incorrect datetime value: '22:55:23' Warning 1292 Incorrect datetime value: '10:19:31' drop table t1; +# +# Semantics of the condition IS NULL +# when the field belongs to an inner table of an outer join +# +create table t1 (a int, b date not null); +insert t1 values (1, 0), (2, '1999-01-02'); +create table t2 (c int); +insert t2 values (1),(3); +select * from t2 left join t1 on t1.a=t2.c where t1.a is null; +c a b +3 NULL NULL +select * from t2 left join t1 on t1.a=t2.c where t1.b is null; +c a b +1 1 0000-00-00 +3 NULL NULL +drop table t1,t2; End of 5.3 tests diff --git a/mysql-test/t/type_datetime.test b/mysql-test/t/type_datetime.test index eeba0ca69e3..77ce606697b 100644 --- a/mysql-test/t/type_datetime.test +++ b/mysql-test/t/type_datetime.test @@ -471,5 +471,20 @@ insert into t1 values ('2000-12-03','22:55:23'),('2008-05-03','10:19:31'); select case when d = '2012-12-12' then d else t end as cond, group_concat( d ) from t1 group by cond; drop table t1; +--echo # +--echo # Semantics of the condition IS NULL +--echo # when the field belongs to an inner table of an outer join +--echo # + +create table t1 (a int, b date not null); +insert t1 values (1, 0), (2, '1999-01-02'); +create table t2 (c int); +insert t2 values (1),(3); + +select * from t2 left join t1 on t1.a=t2.c where t1.a is null; +select * from t2 left join t1 on t1.a=t2.c where t1.b is null; + +drop table t1,t2; + --echo End of 5.3 tests diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 410244b88f0..b5f76608672 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -13325,20 +13325,27 @@ remove_eq_conds(THD *thd, COND *cond, Item::cond_result *cond_value) /* fix to replace 'NULL' dates with '0' (shreeve@uci.edu) */ else if (((field->type() == MYSQL_TYPE_DATE) || (field->type() == MYSQL_TYPE_DATETIME)) && - (field->flags & NOT_NULL_FLAG) && - !field->table->maybe_null) + (field->flags & NOT_NULL_FLAG)) { - COND *new_cond; - if ((new_cond= new Item_func_eq(args[0],new Item_int("0", 0, 2)))) - { - cond=new_cond; - /* - Item_func_eq can't be fixed after creation so we do not check - cond->fixed, also it do not need tables so we use 0 as second - argument. - */ - cond->fix_fields(thd, &cond); - } + COND *eq_cond; + if (!(eq_cond= new Item_func_eq(args[0],new Item_int("0", 0, 2)))) + return cond; + + if (field->table->pos_in_table_list->outer_join) + { + // outer join: transform "col IS NULL" to "col IS NULL or col=0" + Item *or_cond= new Item_cond_or(eq_cond, cond); + if (!or_cond) + return cond; + cond= or_cond; + } + else + { + // not outer join: transform "col IS NULL" to "col=0" + cond= eq_cond; + } + + cond->fix_fields(thd, &cond); } } if (cond->const_item() && !cond->is_expensive()) From 920c479c6ebd2236dbe5510e5ed8b748bf0ee158 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Fri, 3 May 2013 22:46:45 -0700 Subject: [PATCH 125/172] Fixed bug mdev-4336. When iterating over a list of conditions using List_iterator the function remove_eq_conds should skip all predicates that replace a condition from the list. Otherwise it can come to an infinite recursion. --- mysql-test/r/join_outer.result | 14 ++++++++++++++ mysql-test/r/join_outer_jcl6.result | 14 ++++++++++++++ mysql-test/t/join_outer.test | 17 +++++++++++++++++ sql/sql_select.cc | 15 ++++++++++++--- 4 files changed, 57 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/join_outer.result b/mysql-test/r/join_outer.result index 7bc95e78041..723b2a88382 100644 --- a/mysql-test/r/join_outer.result +++ b/mysql-test/r/join_outer.result @@ -1822,4 +1822,18 @@ b c d 5 8 88 5 8 81 DROP TABLE t1,t2; +# +# Bug mdev-4336: LEFT JOIN with disjunctive +# IS NULL in WHERE +# causes a hang and eventual crash +# +CREATE TABLE t1 ( +id int(11) NOT NULL, +modified datetime NOT NULL, +PRIMARY KEY (id) +); +SELECT a.* FROM t1 a LEFT JOIN t1 b ON a.id = b.id +WHERE a.modified > b.modified or b.modified IS NULL; +id modified +DROP TABLE t1; SET optimizer_switch=@save_optimizer_switch; diff --git a/mysql-test/r/join_outer_jcl6.result b/mysql-test/r/join_outer_jcl6.result index 554e0027a9e..d063720836d 100644 --- a/mysql-test/r/join_outer_jcl6.result +++ b/mysql-test/r/join_outer_jcl6.result @@ -1833,6 +1833,20 @@ b c d 5 8 88 5 8 81 DROP TABLE t1,t2; +# +# Bug mdev-4336: LEFT JOIN with disjunctive +# IS NULL in WHERE +# causes a hang and eventual crash +# +CREATE TABLE t1 ( +id int(11) NOT NULL, +modified datetime NOT NULL, +PRIMARY KEY (id) +); +SELECT a.* FROM t1 a LEFT JOIN t1 b ON a.id = b.id +WHERE a.modified > b.modified or b.modified IS NULL; +id modified +DROP TABLE t1; SET optimizer_switch=@save_optimizer_switch; set join_cache_level=default; show variables like 'join_cache_level'; diff --git a/mysql-test/t/join_outer.test b/mysql-test/t/join_outer.test index 69c08cd54bd..8c0ee82e1fa 100644 --- a/mysql-test/t/join_outer.test +++ b/mysql-test/t/join_outer.test @@ -1359,4 +1359,21 @@ ORDER BY t1.b; DROP TABLE t1,t2; +--echo # +--echo # Bug mdev-4336: LEFT JOIN with disjunctive +--echo # IS NULL in WHERE +--echo # causes a hang and eventual crash +--echo # + +CREATE TABLE t1 ( + id int(11) NOT NULL, + modified datetime NOT NULL, + PRIMARY KEY (id) +); + +SELECT a.* FROM t1 a LEFT JOIN t1 b ON a.id = b.id + WHERE a.modified > b.modified or b.modified IS NULL; + +DROP TABLE t1; + SET optimizer_switch=@save_optimizer_switch; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index b5f76608672..3ccebf688e2 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -13197,7 +13197,8 @@ remove_eq_conds(THD *thd, COND *cond, Item::cond_result *cond_value) else { Item *list_item; - Item *new_list_item; + Item *new_list_item; + uint cnt= new_item_and_list->elements; List_iterator it(*new_item_and_list); while ((list_item= it++)) { @@ -13211,7 +13212,9 @@ remove_eq_conds(THD *thd, COND *cond, Item::cond_result *cond_value) it.replace(new_list_item); new_list_item->update_used_tables(); } - li.replace(*new_item_and_list); + li.replace(*new_item_and_list); + for (cnt--; cnt; cnt--) + item= li++; } cond_and_list->concat((List*) cond_equal_items); } @@ -13232,7 +13235,13 @@ remove_eq_conds(THD *thd, COND *cond, Item::cond_result *cond_value) if (new_item->type() == Item::COND_ITEM && ((Item_cond*) new_item)->functype() == ((Item_cond*) cond)->functype()) - li.replace(*((Item_cond*) new_item)->argument_list()); + { + List *arg_list= ((Item_cond*) new_item)->argument_list(); + uint cnt= arg_list->elements; + li.replace(*arg_list); + for ( cnt--; cnt; cnt--) + item= li++; + } else li.replace(new_item); } From 2a8db1ca59456e8cea3077dc6d1735c10a0b0027 Mon Sep 17 00:00:00 2001 From: Sergey Petrunya Date: Sat, 4 May 2013 13:05:24 +0400 Subject: [PATCH 126/172] Update testcase result --- mysql-test/r/join_nested_jcl6.result | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/mysql-test/r/join_nested_jcl6.result b/mysql-test/r/join_nested_jcl6.result index c744df9e2fe..6b5a50ba978 100644 --- a/mysql-test/r/join_nested_jcl6.result +++ b/mysql-test/r/join_nested_jcl6.result @@ -1858,6 +1858,30 @@ Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` A DROP TABLE t1,t2,t3,t4; SET optimizer_switch=@save_optimizer_switch; End of 5.0 tests +# +# MDEV-621: LP:693329 - Assertion `!is_interleave_error' failed on low optimizer_search_depth +# +set @tmp_mdev621= @@optimizer_search_depth; +SET SESSION optimizer_search_depth = 4; +CREATE TABLE t1 (f1 int,f2 int,f3 int,f4 int) ; +INSERT IGNORE INTO t1 VALUES (0,0,2,0),(NULL,0,2,0); +CREATE TABLE t2 (f1 int) ; +CREATE TABLE t3 (f3 int,PRIMARY KEY (f3)) ; +CREATE TABLE t4 (f5 int) ; +CREATE TABLE t5 (f2 int) ; +SELECT alias2.f4 FROM t1 AS alias1 +LEFT JOIN t1 AS alias2 +LEFT JOIN t2 AS alias3 +LEFT JOIN t3 AS alias4 ON alias3.f1 = alias4.f3 +ON alias2.f1 +LEFT JOIN t4 AS alias5 +JOIN t5 ON alias5.f5 +ON alias2.f3 ON alias1.f2; +f4 +NULL +NULL +DROP TABLE t1,t2,t3,t4,t5; +set optimizer_search_depth= @tmp_mdev621; CREATE TABLE t5 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b)); CREATE TABLE t6 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b)); CREATE TABLE t7 (a int, b int, c int, PRIMARY KEY(a), KEY b_i (b)); From 71422d7b143ae92a1a5802f0669d2d3d9483c2e4 Mon Sep 17 00:00:00 2001 From: Sergey Petrunya Date: Sat, 4 May 2013 21:02:07 +0400 Subject: [PATCH 127/172] MDEV-389: Wrong result (missing row) with semijoin, join_cache_level>4 ... - Added testcase --- mysql-test/r/subselect_sj.result | 18 ++++++++++++++++++ mysql-test/r/subselect_sj_jcl6.result | 18 ++++++++++++++++++ mysql-test/t/subselect_sj.test | 27 +++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) diff --git a/mysql-test/r/subselect_sj.result b/mysql-test/r/subselect_sj.result index 92c626eca61..35c499fa8d4 100644 --- a/mysql-test/r/subselect_sj.result +++ b/mysql-test/r/subselect_sj.result @@ -2852,4 +2852,22 @@ field1 o o DROP TABLE t1, t2; +# +# MDEV-389: Wrong result (missing row) with semijoin, join_cache_level>4, LEFT JOIN... +# (testcase only) +# +SET join_cache_level = 5; +SET optimizer_switch = 'semijoin=on'; +CREATE TABLE t1 (a INT NOT NULL, b CHAR(1), KEY(a)) ENGINE=MyISAM; +INSERT INTO t1 VALUES (4,'p'),(1,'q'),(8,'e'); +CREATE TABLE t2 (c INT, d CHAR(1), KEY(c), KEY(d)) ENGINE=MyISAM; +INSERT INTO t2 VALUES (4,'f'),(2,'i'),(5,'h'),(3,'q'),(1,'g'); +SELECT a, COUNT(*) AS cnt +FROM t1 LEFT JOIN t2 ON (d = b) +WHERE a IN ( SELECT c FROM t2 WHERE b > 'k' ) +GROUP BY a ORDER BY a, cnt LIMIT 2; +a cnt +1 1 +4 1 +drop table t1, t2; set optimizer_switch=@subselect_sj_tmp; diff --git a/mysql-test/r/subselect_sj_jcl6.result b/mysql-test/r/subselect_sj_jcl6.result index 04a54c9a371..5148c8e1577 100644 --- a/mysql-test/r/subselect_sj_jcl6.result +++ b/mysql-test/r/subselect_sj_jcl6.result @@ -2866,6 +2866,24 @@ field1 o o DROP TABLE t1, t2; +# +# MDEV-389: Wrong result (missing row) with semijoin, join_cache_level>4, LEFT JOIN... +# (testcase only) +# +SET join_cache_level = 5; +SET optimizer_switch = 'semijoin=on'; +CREATE TABLE t1 (a INT NOT NULL, b CHAR(1), KEY(a)) ENGINE=MyISAM; +INSERT INTO t1 VALUES (4,'p'),(1,'q'),(8,'e'); +CREATE TABLE t2 (c INT, d CHAR(1), KEY(c), KEY(d)) ENGINE=MyISAM; +INSERT INTO t2 VALUES (4,'f'),(2,'i'),(5,'h'),(3,'q'),(1,'g'); +SELECT a, COUNT(*) AS cnt +FROM t1 LEFT JOIN t2 ON (d = b) +WHERE a IN ( SELECT c FROM t2 WHERE b > 'k' ) +GROUP BY a ORDER BY a, cnt LIMIT 2; +a cnt +1 1 +4 1 +drop table t1, t2; set optimizer_switch=@subselect_sj_tmp; # # BUG#49129: Wrong result with IN-subquery with join_cache_level=6 and firstmatch=off diff --git a/mysql-test/t/subselect_sj.test b/mysql-test/t/subselect_sj.test index e2abb8040b3..15ca4ce884e 100644 --- a/mysql-test/t/subselect_sj.test +++ b/mysql-test/t/subselect_sj.test @@ -2540,5 +2540,32 @@ WHERE (field1) IN ($query); DROP TABLE t1, t2; +--echo # +--echo # MDEV-389: Wrong result (missing row) with semijoin, join_cache_level>4, LEFT JOIN... +--echo # (testcase only) +--echo # + +# Use another connection to get rid of this test's settings +connect (con1,localhost,root,,); +connection con1; + +SET join_cache_level = 5; +SET optimizer_switch = 'semijoin=on'; + +CREATE TABLE t1 (a INT NOT NULL, b CHAR(1), KEY(a)) ENGINE=MyISAM; +INSERT INTO t1 VALUES (4,'p'),(1,'q'),(8,'e'); + +CREATE TABLE t2 (c INT, d CHAR(1), KEY(c), KEY(d)) ENGINE=MyISAM; +INSERT INTO t2 VALUES (4,'f'),(2,'i'),(5,'h'),(3,'q'),(1,'g'); + +SELECT a, COUNT(*) AS cnt +FROM t1 LEFT JOIN t2 ON (d = b) +WHERE a IN ( SELECT c FROM t2 WHERE b > 'k' ) +GROUP BY a ORDER BY a, cnt LIMIT 2; + +drop table t1, t2; +connection default; +disconnect con1; + # The following command must be the last one the file set optimizer_switch=@subselect_sj_tmp; From ddd341b71ae6b9c2dd206df64c662c0a29730ae9 Mon Sep 17 00:00:00 2001 From: Sergey Petrunya Date: Sat, 4 May 2013 20:42:43 +0400 Subject: [PATCH 128/172] MDEV-4071: Valgrind warnings 'Invalid read' in subselect_engine::calc_const_tables with ... - Call tmp_having->update_used_tables() *before* we have call JOIN::cleanup(). Making the call after join::cleanup() is not allowed, because subquery predicate items walk parent join's JOIN_TAB structures. Which can be invalidated by JOIN::cleanup(). --- mysql-test/r/subselect_sj.result | 14 ++++++++++++++ mysql-test/r/subselect_sj_jcl6.result | 14 ++++++++++++++ mysql-test/t/subselect_sj.test | 17 +++++++++++++++++ sql/sql_select.cc | 20 ++++++-------------- 4 files changed, 51 insertions(+), 14 deletions(-) diff --git a/mysql-test/r/subselect_sj.result b/mysql-test/r/subselect_sj.result index 35c499fa8d4..56c3044c4e4 100644 --- a/mysql-test/r/subselect_sj.result +++ b/mysql-test/r/subselect_sj.result @@ -2870,4 +2870,18 @@ a cnt 1 1 4 1 drop table t1, t2; +# +# MDEV-4071: Valgrind warnings 'Invalid read' in subselect_engine::calc_const_tables with ... +# +CREATE TABLE t1 (b INT, c VARCHAR(1)) ENGINE=MyISAM; +INSERT INTO t1 VALUES (7,'v'),(0,'s'); +CREATE TABLE t2 (a INT) ENGINE=MyISAM; +INSERT INTO t2 VALUES (0),(8); +SELECT c, SUM( DISTINCT b ) AS sm FROM t1 +WHERE ( 5, 108 ) IN ( SELECT MIN(a), MAX(a) FROM t2 ) +GROUP BY b +HAVING c <> ( SELECT MAX( c ) FROM t1 ) +ORDER BY sm; +c sm +DROP TABLE t1,t2; set optimizer_switch=@subselect_sj_tmp; diff --git a/mysql-test/r/subselect_sj_jcl6.result b/mysql-test/r/subselect_sj_jcl6.result index 5148c8e1577..7be29201c63 100644 --- a/mysql-test/r/subselect_sj_jcl6.result +++ b/mysql-test/r/subselect_sj_jcl6.result @@ -2884,6 +2884,20 @@ a cnt 1 1 4 1 drop table t1, t2; +# +# MDEV-4071: Valgrind warnings 'Invalid read' in subselect_engine::calc_const_tables with ... +# +CREATE TABLE t1 (b INT, c VARCHAR(1)) ENGINE=MyISAM; +INSERT INTO t1 VALUES (7,'v'),(0,'s'); +CREATE TABLE t2 (a INT) ENGINE=MyISAM; +INSERT INTO t2 VALUES (0),(8); +SELECT c, SUM( DISTINCT b ) AS sm FROM t1 +WHERE ( 5, 108 ) IN ( SELECT MIN(a), MAX(a) FROM t2 ) +GROUP BY b +HAVING c <> ( SELECT MAX( c ) FROM t1 ) +ORDER BY sm; +c sm +DROP TABLE t1,t2; set optimizer_switch=@subselect_sj_tmp; # # BUG#49129: Wrong result with IN-subquery with join_cache_level=6 and firstmatch=off diff --git a/mysql-test/t/subselect_sj.test b/mysql-test/t/subselect_sj.test index 15ca4ce884e..bfdc6335f1d 100644 --- a/mysql-test/t/subselect_sj.test +++ b/mysql-test/t/subselect_sj.test @@ -2567,5 +2567,22 @@ drop table t1, t2; connection default; disconnect con1; +--echo # +--echo # MDEV-4071: Valgrind warnings 'Invalid read' in subselect_engine::calc_const_tables with ... +--echo # +CREATE TABLE t1 (b INT, c VARCHAR(1)) ENGINE=MyISAM; +INSERT INTO t1 VALUES (7,'v'),(0,'s'); + +CREATE TABLE t2 (a INT) ENGINE=MyISAM; +INSERT INTO t2 VALUES (0),(8); + +SELECT c, SUM( DISTINCT b ) AS sm FROM t1 +WHERE ( 5, 108 ) IN ( SELECT MIN(a), MAX(a) FROM t2 ) +GROUP BY b +HAVING c <> ( SELECT MAX( c ) FROM t1 ) +ORDER BY sm; + +DROP TABLE t1,t2; + # The following command must be the last one the file set optimizer_switch=@subselect_sj_tmp; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 4843d7be400..24f480bbfb9 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -2367,7 +2367,12 @@ JOIN::exec() List *curr_all_fields= &all_fields; List *curr_fields_list= &fields_list; TABLE *curr_tmp_table= 0; - bool tmp_having_used_tables_updated= FALSE; + /* + curr_join->join_free() will call JOIN::cleanup(full=TRUE). It will not + be safe to call update_used_tables() after that. + */ + if (curr_join->tmp_having) + curr_join->tmp_having->update_used_tables(); /* Initialize examined rows here because the values from all join parts @@ -2618,16 +2623,6 @@ JOIN::exec() curr_join->select_distinct=0; /* Each row is unique */ - /* - curr_join->join_free() will call JOIN::cleanup(full=TRUE). It will not - be safe to call update_used_tables() after that. - */ - if (curr_join->tmp_having) - { - curr_join->tmp_having->update_used_tables(); - tmp_having_used_tables_updated= TRUE; - } - curr_join->join_free(); /* Free quick selects */ if (curr_join->select_distinct && ! curr_join->group_list) @@ -2708,9 +2703,6 @@ JOIN::exec() if (curr_join->tmp_having && ! curr_join->group_list && ! curr_join->sort_and_group) { - // Some tables may have been const - if (!tmp_having_used_tables_updated) - curr_join->tmp_having->update_used_tables(); JOIN_TAB *curr_table= &curr_join->join_tab[curr_join->const_tables]; table_map used_tables= (curr_join->const_table_map | curr_table->table->map); From 445fc7ba5d471c99a0fa8d2f5a7b4e755c6575b4 Mon Sep 17 00:00:00 2001 From: Sergey Petrunya Date: Sun, 5 May 2013 05:27:02 +0400 Subject: [PATCH 129/172] MDEV-4482: main.windows test fails in buildbot with result mismatch - Rollback an earlier patch (was pushed into 5.3 instead of 5.5) --- mysql-test/r/windows.result | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql-test/r/windows.result b/mysql-test/r/windows.result index d0cdd858d4a..dc624a07f4f 100644 --- a/mysql-test/r/windows.result +++ b/mysql-test/r/windows.result @@ -16,7 +16,7 @@ CREATE TABLE t1 (a int, b int); INSERT INTO t1 VALUES (1,1); EXPLAIN SELECT * FROM t1 WHERE b = (SELECT max(2)); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables +1 PRIMARY t1 system NULL NULL NULL NULL 1 2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used DROP TABLE t1; CREATE DATABASE `TESTDB`; From d4be9e7bc0cfd5ddd444ecc64daa4166597ca2eb Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Mon, 6 May 2013 16:51:41 +0300 Subject: [PATCH 130/172] If one declared several continue handler for the same condition on different level of stored procedures, all of them where executed. Now we only execute the innermost of them (the most relevant). The solution was to add a 'handled' marker to MYSQL_ERROR and mark all elements for which we have executed a condition handler. When searching for new conditions, we will ignore any marked element. .bzrignore: Ignore error message file mysql-test/r/sp.result: Added testcase for continue handlers. mysql-test/t/sp.test: Added testcase for continue handlers. sql/sp_head.cc: Mark errors for which we will excute a handler as 'handled' Ignore already handled warnings/errors sql/sql_error.cc: Add 'handled' argument to MYSQL_ERROR, so that we can mark the errors/warnings we have handled. sql/sql_error.h: Add 'handled' argument to MYSQL_ERROR, so that we can mark the errors/warnings we have handled. --- .bzrignore | 1 + mysql-test/r/sp.result | 61 ++++++++++++++++++++++++++++++++++++++++ mysql-test/t/sp.test | 63 +++++++++++++++++++++++++++++++++++++++++- sql/sp_head.cc | 6 ++-- sql/sql_error.cc | 4 +++ sql/sql_error.h | 14 ++++++++++ 6 files changed, 146 insertions(+), 3 deletions(-) diff --git a/.bzrignore b/.bzrignore index 57209c72b87..37ae77824f8 100644 --- a/.bzrignore +++ b/.bzrignore @@ -1068,6 +1068,7 @@ vio/viotest.cpp ylwrap zlib/*.ds? sql-bench/test-table-elimination +sql/share/bulgarian sql/share/czech sql/share/danish sql/share/dutch diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result index defd3955f6c..a0f21b434d1 100644 --- a/mysql-test/r/sp.result +++ b/mysql-test/r/sp.result @@ -7916,4 +7916,65 @@ DROP FUNCTION f1; DROP FUNCTION f2; DROP FUNCTION f3; DROP FUNCTION f4; + +Stored procedures and a condition handler in a nested procedure call +doesn't suppress the condition from being passed on to the calling +procedure + +drop procedure if exists p1; +drop procedure if exists p0; +create table t1 (id int); +create procedure p1 () begin +declare i int default 0; +declare continue handler for not found begin +select "You should see this message and the warning that generated this" as "message"; +show warnings; +end; +select id into i from t1; +end$$ +create procedure p0 () begin +declare continue handler for not found begin +select "You should NOT see this message" as "message"; +end; +call p1(); +end$$ +call p0(); +message +You should see this message and the warning that generated this +Level Code Message +Warning 1329 No data - zero rows fetched, selected, or processed +Warnings: +Warning 1329 No data - zero rows fetched, selected, or processed +drop procedure p1; +drop procedure p0; +drop table t1; + +Test if stored procedures propagates errors + +create table t1 (id int primary key); +create procedure p1 () begin +insert into t1 values(1); +insert into t1 values(2); +insert into t1 values(2); +insert into t1 values(3); +end$$ +create procedure p2 () begin +declare x int; +select id into x from t1 where id=5; +end$$ +call p1(); +ERROR 23000: Duplicate entry '2' for key 'PRIMARY' +show warnings; +Level Code Message +Error 1062 Duplicate entry '2' for key 'PRIMARY' +select * from t1; +id +1 +2 +call p2(); +Warnings: +Warning 1329 No data - zero rows fetched, selected, or processed +drop procedure p1; +drop procedure p2; +drop table t1; # End of 5.5 test diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test index 0a368826ee7..3590dc66187 100644 --- a/mysql-test/t/sp.test +++ b/mysql-test/t/sp.test @@ -9209,5 +9209,66 @@ DROP FUNCTION f2; DROP FUNCTION f3; DROP FUNCTION f4; ---echo # End of 5.5 test +--echo +--echo Stored procedures and a condition handler in a nested procedure call +--echo doesn't suppress the condition from being passed on to the calling +--echo procedure +--echo +--disable_warnings +drop procedure if exists p1; +drop procedure if exists p0; +--enable_warnings + +create table t1 (id int); +delimiter $$; +create procedure p1 () begin +declare i int default 0; +declare continue handler for not found begin +select "You should see this message and the warning that generated this" as "message"; +show warnings; +end; +select id into i from t1; +end$$ +create procedure p0 () begin +declare continue handler for not found begin +select "You should NOT see this message" as "message"; +end; +call p1(); +end$$ +delimiter ;$$ +call p0(); + +drop procedure p1; +drop procedure p0; +drop table t1; + +--echo +--echo Test if stored procedures propagates errors +--echo + +create table t1 (id int primary key); +delimiter $$; +create procedure p1 () begin +insert into t1 values(1); +insert into t1 values(2); +insert into t1 values(2); +insert into t1 values(3); +end$$ +create procedure p2 () begin + declare x int; + select id into x from t1 where id=5; +end$$ +delimiter ;$$ +--error ER_DUP_ENTRY +call p1(); +show warnings; +select * from t1; +call p2(); + +drop procedure p1; +drop procedure p2; + +drop table t1; + +--echo # End of 5.5 test diff --git a/sql/sp_head.cc b/sql/sp_head.cc index be6dc935dcc..847a4f214ab 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -1160,8 +1160,9 @@ find_handler_after_execution(THD *thd, sp_rcontext *ctx) MYSQL_ERROR *err; while ((err= it++)) { - if (err->get_level() != MYSQL_ERROR::WARN_LEVEL_WARN && - err->get_level() != MYSQL_ERROR::WARN_LEVEL_NOTE) + if ((err->get_level() != MYSQL_ERROR::WARN_LEVEL_WARN && + err->get_level() != MYSQL_ERROR::WARN_LEVEL_NOTE) || + err->handled()) continue; if (ctx->find_handler(thd, @@ -1170,6 +1171,7 @@ find_handler_after_execution(THD *thd, sp_rcontext *ctx) err->get_level(), err->get_message_text())) { + err->mark_handled(); break; } } diff --git a/sql/sql_error.cc b/sql/sql_error.cc index 61281af1d0a..a4f5b210285 100644 --- a/sql/sql_error.cc +++ b/sql/sql_error.cc @@ -185,6 +185,7 @@ MYSQL_ERROR::MYSQL_ERROR() m_cursor_name((const char*) NULL, 0, & my_charset_utf8_bin), m_message_text(), m_sql_errno(0), + m_handled(0), m_level(MYSQL_ERROR::WARN_LEVEL_ERROR), m_mem_root(NULL) { @@ -212,6 +213,7 @@ void MYSQL_ERROR::clear() m_cursor_name.length(0); m_message_text.length(0); m_sql_errno= 0; + m_handled= 0; m_level= MYSQL_ERROR::WARN_LEVEL_ERROR; } @@ -229,6 +231,7 @@ MYSQL_ERROR::MYSQL_ERROR(MEM_ROOT *mem_root) m_cursor_name((const char*) NULL, 0, & my_charset_utf8_bin), m_message_text(), m_sql_errno(0), + m_handled(0), m_level(MYSQL_ERROR::WARN_LEVEL_ERROR), m_mem_root(mem_root) { @@ -267,6 +270,7 @@ MYSQL_ERROR::copy_opt_attributes(const MYSQL_ERROR *cond) copy_string(m_mem_root, & m_table_name, & cond->m_table_name); copy_string(m_mem_root, & m_column_name, & cond->m_column_name); copy_string(m_mem_root, & m_cursor_name, & cond->m_cursor_name); + m_handled= cond->m_handled; } void diff --git a/sql/sql_error.h b/sql/sql_error.h index 00ade934226..0483e7c65d1 100644 --- a/sql/sql_error.h +++ b/sql/sql_error.h @@ -191,6 +191,17 @@ public: MYSQL_ERROR::enum_warning_level get_level() const { return m_level; } + /** check if condition was handled by a condition handler */ + bool handled() const + { + return m_handled; + } + /** mark that condition was handled */ + void mark_handled() + { + m_handled= 1; + } + private: /* The interface of MYSQL_ERROR is mostly private, by design, @@ -306,6 +317,9 @@ private: /** MySQL extension, MYSQL_ERRNO condition item. */ uint m_sql_errno; + /** Marker if error/warning was handled by a continue handler */ + bool m_handled; + /** SQL RETURNED_SQLSTATE condition item. This member is always NUL terminated. From e0a08c567a028db406ebf69ece8b3210cba2af0c Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 7 May 2013 18:26:22 +0200 Subject: [PATCH 131/172] Compilation warnings. openssl compilation problem. --- storage/maria/ma_loghandler.c | 3 +-- storage/maria/ma_search.c | 10 +++------- storage/xtradb/os/os0file.c | 3 +-- vio/viossl.c | 2 +- 4 files changed, 6 insertions(+), 12 deletions(-) diff --git a/storage/maria/ma_loghandler.c b/storage/maria/ma_loghandler.c index 341bbc6088f..54f67eb1ab3 100644 --- a/storage/maria/ma_loghandler.c +++ b/storage/maria/ma_loghandler.c @@ -7472,9 +7472,8 @@ static void translog_force_current_buffer_to_finish() struct st_translog_buffer *old_buffer= log_descriptor.bc.buffer; uchar *data= log_descriptor.bc.ptr - log_descriptor.bc.current_page_fill; uint16 left= TRANSLOG_PAGE_SIZE - log_descriptor.bc.current_page_fill; - uint16 current_page_fill, write_counter, previous_offset; + uint16 UNINIT_VAR(current_page_fill), write_counter, previous_offset; DBUG_ENTER("translog_force_current_buffer_to_finish"); - LINT_INIT(current_page_fill); DBUG_PRINT("enter", ("Buffer #%u 0x%lx " "Buffer addr: (%lu,0x%lx) " diff --git a/storage/maria/ma_search.c b/storage/maria/ma_search.c index ccb4bf77717..d38bc7af26c 100644 --- a/storage/maria/ma_search.c +++ b/storage/maria/ma_search.c @@ -424,9 +424,9 @@ int _ma_prefix_search(const MARIA_KEY *key, const MARIA_PAGE *ma_page, flag is the value returned by ha_key_cmp and as treated as final */ int flag=0, my_flag=-1; - uint nod_flag, length, len, matched, cmplen, kseg_len; - uint page_flag, prefix_len,suffix_len; - int key_len_skip, seg_len_pack, key_len_left; + uint nod_flag, UNINIT_VAR(length), len, matched, cmplen, kseg_len; + uint page_flag, UNINIT_VAR(prefix_len),suffix_len; + int key_len_skip, UNINIT_VAR(seg_len_pack), key_len_left; uchar *end, *vseg, *UNINIT_VAR(saved_vseg), *UNINIT_VAR(saved_from); uchar *page; uchar tt_buff[MARIA_MAX_KEY_BUFF+2], *t_buff=tt_buff+2; @@ -439,10 +439,6 @@ int _ma_prefix_search(const MARIA_KEY *key, const MARIA_PAGE *ma_page, const uchar *sort_order= keyinfo->seg->charset->sort_order; DBUG_ENTER("_ma_prefix_search"); - LINT_INIT(seg_len_pack); - LINT_INIT(prefix_len); - LINT_INIT(length); - t_buff[0]=0; /* Avoid bugs */ page_flag= ma_page->flag; nod_flag= ma_page->node; diff --git a/storage/xtradb/os/os0file.c b/storage/xtradb/os/os0file.c index 8f1b3e46bb2..8f7f8216782 100644 --- a/storage/xtradb/os/os0file.c +++ b/storage/xtradb/os/os0file.c @@ -1462,7 +1462,6 @@ os_file_set_nocache( #endif static int os_file_set_atomic_writes(os_file_t file, const char *name) { - static int first_time = 1; int atomic_option = 1; int ret = ioctl (file, DFS_IOCTL_ATOMIC_WRITE_SET, &atomic_option); @@ -2138,7 +2137,7 @@ os_file_set_size( "InnoDB: Error: preallocating data for" " file %s failed at\n" "InnoDB: offset 0 size %lld %lld. Operating system" - " error number %llu.\n" + " error number %d.\n" "InnoDB: Check that the disk is not full" " or a disk quota exceeded.\n" "InnoDB: Some operating system error numbers" diff --git a/vio/viossl.c b/vio/viossl.c index 88f23df6842..ad20a6ab5c3 100644 --- a/vio/viossl.c +++ b/vio/viossl.c @@ -183,7 +183,7 @@ static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, long timeout, SSL_clear(ssl); SSL_SESSION_set_timeout(SSL_get_session(ssl), timeout); SSL_set_fd(ssl, vio->sd); -#ifndef HAVE_YASSL +#if !defined(HAVE_YASSL) && defined(SSL_OP_NO_COMPRESSION) SSL_set_options(ssl, SSL_OP_NO_COMPRESSION); #endif From 009dee833c94ebcf7199514f32baf3f4530d92f0 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 7 May 2013 18:28:36 +0200 Subject: [PATCH 132/172] centos5 gcc 4.1 asm bug include/atomic/x86-gcc.h: force %esi register, don't give gcc a choice. (otherwise it could choose %ebx, and 4.1 did) --- cmake/os/Linux.cmake | 6 ------ include/atomic/x86-gcc.h | 6 +++--- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/cmake/os/Linux.cmake b/cmake/os/Linux.cmake index 108e06cf7b0..36d7ade66a7 100644 --- a/cmake/os/Linux.cmake +++ b/cmake/os/Linux.cmake @@ -47,9 +47,3 @@ IF(HAVE_DECL_SHM_HUGETLB) SET(HAVE_LARGE_PAGE_OPTION 1) ENDIF() -IF(CMAKE_SIZEOF_VOID_P EQUAL 4 AND CMAKE_SYSTEM_PROCESSOR MATCHES "86") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=i686") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i686") - SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -march=i686") -ENDIF() - diff --git a/include/atomic/x86-gcc.h b/include/atomic/x86-gcc.h index 2238347d419..173e32e790c 100644 --- a/include/atomic/x86-gcc.h +++ b/include/atomic/x86-gcc.h @@ -124,10 +124,10 @@ asm volatile ("push %%ebx;" \ "movl (%%ecx), %%ebx;" \ "movl 4(%%ecx), %%ecx;" \ - LOCK_prefix "; cmpxchg8b %0;" \ + LOCK_prefix "; cmpxchg8b (%%esi);" \ "setz %2; pop %%ebx" \ - : "=m" (*a), "+A" (*cmp), "=c" (ret) \ - : "c" (&set), "m" (*a) \ + : "+S" (a), "+A" (*cmp), "=c" (ret) \ + : "c" (&set) \ : "memory", "esp") #endif From bcfa90b471b4a04ba9eb9dccd88a41c8f72cd38a Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 8 May 2013 09:52:54 +0200 Subject: [PATCH 133/172] Percona-Server-5.5.30-rel30.2.tar.gz --- btr/btr0btr.c | 38 +++---- btr/btr0cur.c | 111 +++++++++----------- btr/btr0pcur.c | 13 ++- btr/btr0sea.c | 5 +- buf/buf0buf.c | 121 ++++++--------------- buf/buf0flu.c | 9 +- buf/buf0lru.c | 40 ------- buf/buf0rea.c | 8 +- dict/dict0dict.c | 6 +- fil/fil0fil.c | 109 ++++++------------- fsp/fsp0fsp.c | 45 +++----- handler/ha_innodb.cc | 38 ++++--- include/btr0btr.ic | 2 +- include/buf0buf.h | 1 - include/buf0buf.ic | 9 +- include/buf0flu.ic | 2 +- include/buf0lru.h | 7 -- include/fut0fut.ic | 5 +- include/log0log.h | 18 +++- include/log0log.ic | 23 +++- include/mtr0mtr.h | 2 + include/mtr0mtr.ic | 21 ++++ include/read0read.h | 33 ++++-- include/read0read.ic | 41 +++----- include/srv0srv.h | 17 ++- include/trx0purge.h | 1 + include/trx0sys.h | 38 +++++++ include/trx0sys.ic | 46 ++++---- include/trx0trx.h | 43 ++++++-- include/trx0trx.ic | 8 +- lock/lock0lock.c | 22 ++-- log/log0log.c | 19 ++-- mtr/mtr0mtr.c | 39 ++++++- read/read0read.c | 198 +++++++++++++++++------------------ row/row0ins.c | 9 +- row/row0merge.c | 6 +- row/row0sel.c | 23 ++-- row/row0vers.c | 6 +- srv/srv0srv.c | 4 +- trx/trx0purge.c | 16 ++- trx/trx0roll.c | 8 +- trx/trx0sys.c | 11 +- trx/trx0trx.c | 243 +++++++++++++++++++++++++++++++++++-------- 43 files changed, 808 insertions(+), 656 deletions(-) diff --git a/btr/btr0btr.c b/btr/btr0btr.c index b0ae888e676..3efd9bc76e0 100644 --- a/btr/btr0btr.c +++ b/btr/btr0btr.c @@ -688,7 +688,7 @@ btr_root_fseg_validate( { ulint offset = mach_read_from_2(seg_header + FSEG_HDR_OFFSET); - if (UNIV_UNLIKELY(srv_pass_corrupt_table)) { + if (UNIV_UNLIKELY(srv_pass_corrupt_table != 0)) { return (mach_read_from_4(seg_header + FSEG_HDR_SPACE) == space) && (offset >= FIL_PAGE_DATA) && (offset <= UNIV_PAGE_SIZE - FIL_PAGE_DATA_END); @@ -723,17 +723,14 @@ btr_root_block_get( block = btr_block_get(space, zip_size, root_page_no, RW_X_LATCH, index, mtr); - if (srv_pass_corrupt_table && !block) { - return(0); - } - ut_a(block); + SRV_CORRUPT_TABLE_CHECK(block, return(0);); btr_assert_not_corrupted(block, index); #ifdef UNIV_BTR_DEBUG if (!dict_index_is_ibuf(index)) { const page_t* root = buf_block_get_frame(block); - if (UNIV_UNLIKELY(srv_pass_corrupt_table)) { + if (UNIV_UNLIKELY(srv_pass_corrupt_table != 0)) { if (!btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_LEAF + root, space)) @@ -1063,11 +1060,11 @@ btr_get_size( root = btr_root_get(index, mtr); - if (srv_pass_corrupt_table && !root) { + SRV_CORRUPT_TABLE_CHECK(root, + { mtr_commit(mtr); return(0); - } - ut_a(root); + }); if (flag == BTR_N_LEAF_PAGES) { seg_header = root + PAGE_HEADER + PAGE_BTR_SEG_LEAF; @@ -1525,11 +1522,11 @@ leaf_loop: root = btr_page_get(space, zip_size, root_page_no, RW_X_LATCH, NULL, &mtr); - if (srv_pass_corrupt_table && !root) { + SRV_CORRUPT_TABLE_CHECK(root, + { mtr_commit(&mtr); return; - } - ut_a(root); + }); #ifdef UNIV_BTR_DEBUG ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_LEAF @@ -1555,11 +1552,12 @@ top_loop: root = btr_page_get(space, zip_size, root_page_no, RW_X_LATCH, NULL, &mtr); - if (srv_pass_corrupt_table && !root) { + SRV_CORRUPT_TABLE_CHECK(root, + { mtr_commit(&mtr); return; - } - ut_a(root); + }); + #ifdef UNIV_BTR_DEBUG ut_a(btr_root_fseg_validate(FIL_PAGE_DATA + PAGE_BTR_SEG_TOP + root, space)); @@ -1593,10 +1591,7 @@ btr_free_root( block = btr_block_get(space, zip_size, root_page_no, RW_X_LATCH, NULL, mtr); - if (srv_pass_corrupt_table && !block) { - return; - } - ut_a(block); + SRV_CORRUPT_TABLE_CHECK(block, return;); btr_search_drop_page_hash_index(block); @@ -4565,10 +4560,11 @@ btr_validate_index( root = btr_root_get(index, &mtr); - if (UNIV_UNLIKELY(srv_pass_corrupt_table && !root)) { + SRV_CORRUPT_TABLE_CHECK(root, + { mtr_commit(&mtr); return(FALSE); - } + }); n = btr_page_get_level(root, &mtr); diff --git a/btr/btr0cur.c b/btr/btr0cur.c index d089fb5ad22..488212f087c 100644 --- a/btr/btr0cur.c +++ b/btr/btr0cur.c @@ -258,10 +258,8 @@ btr_cur_latch_leaves( get_block = btr_block_get( space, zip_size, page_no, mode, cursor->index, mtr); - if (srv_pass_corrupt_table && !get_block) { - return; - } - ut_a(get_block); + SRV_CORRUPT_TABLE_CHECK(get_block, return;); + #ifdef UNIV_BTR_DEBUG ut_a(page_is_comp(get_block->frame) == page_is_comp(page)); #endif /* UNIV_BTR_DEBUG */ @@ -283,10 +281,8 @@ btr_cur_latch_leaves( space, zip_size, left_page_no, sibling_mode, cursor->index, mtr); - if (srv_pass_corrupt_table && !get_block) { - return; - } - ut_a(get_block); + SRV_CORRUPT_TABLE_CHECK(get_block, return;); + #ifdef UNIV_BTR_DEBUG ut_a(page_is_comp(get_block->frame) == page_is_comp(page)); @@ -309,10 +305,8 @@ btr_cur_latch_leaves( space, zip_size, page_no, mode, cursor->index, mtr); - if (srv_pass_corrupt_table && !get_block) { - return; - } - ut_a(get_block); + SRV_CORRUPT_TABLE_CHECK(get_block, return;); + #ifdef UNIV_BTR_DEBUG ut_a(page_is_comp(get_block->frame) == page_is_comp(page)); #endif /* UNIV_BTR_DEBUG */ @@ -325,10 +319,8 @@ btr_cur_latch_leaves( space, zip_size, right_page_no, sibling_mode, cursor->index, mtr); - if (srv_pass_corrupt_table && !get_block) { - return; - } - ut_a(get_block); + SRV_CORRUPT_TABLE_CHECK(get_block, return;); + #ifdef UNIV_BTR_DEBUG ut_a(page_is_comp(get_block->frame) == page_is_comp(page)); @@ -357,10 +349,8 @@ btr_cur_latch_leaves( left_page_no, mode, cursor->index, mtr); cursor->left_block = get_block; - if (srv_pass_corrupt_table && !get_block) { - return; - } - ut_a(get_block); + SRV_CORRUPT_TABLE_CHECK(get_block, return;); + #ifdef UNIV_BTR_DEBUG ut_a(page_is_comp(get_block->frame) == page_is_comp(page)); @@ -373,10 +363,8 @@ btr_cur_latch_leaves( get_block = btr_block_get( space, zip_size, page_no, mode, cursor->index, mtr); - if (srv_pass_corrupt_table && !get_block) { - return; - } - ut_a(get_block); + SRV_CORRUPT_TABLE_CHECK(get_block, return;); + #ifdef UNIV_BTR_DEBUG ut_a(page_is_comp(get_block->frame) == page_is_comp(page)); #endif /* UNIV_BTR_DEBUG */ @@ -652,18 +640,19 @@ retry_page_get: file, line, mtr); if (block == NULL) { - if (srv_pass_corrupt_table - && buf_mode != BUF_GET_IF_IN_POOL - && buf_mode != BUF_GET_IF_IN_POOL_OR_WATCH) { - page_cursor->block = 0; - page_cursor->rec = 0; - if (estimate) { - cursor->path_arr->nth_rec = ULINT_UNDEFINED; - } - goto func_exit; - } - ut_a(buf_mode == BUF_GET_IF_IN_POOL - || buf_mode == BUF_GET_IF_IN_POOL_OR_WATCH); + SRV_CORRUPT_TABLE_CHECK(buf_mode == BUF_GET_IF_IN_POOL || + buf_mode == BUF_GET_IF_IN_POOL_OR_WATCH, + { + page_cursor->block = 0; + page_cursor->rec = 0; + if (estimate) { + + cursor->path_arr->nth_rec = + ULINT_UNDEFINED; + } + + goto func_exit; + }); /* This must be a search to perform an insert/delete mark/ delete; try using the insert/delete buffer */ @@ -739,15 +728,18 @@ retry_page_get: block->check_index_page_at_flush = TRUE; page = buf_block_get_frame(block); - if (srv_pass_corrupt_table && !page) { + SRV_CORRUPT_TABLE_CHECK(page, + { page_cursor->block = 0; page_cursor->rec = 0; + if (estimate) { + cursor->path_arr->nth_rec = ULINT_UNDEFINED; } + goto func_exit; - } - ut_a(page); + }); if (rw_latch != RW_NO_LATCH) { #ifdef UNIV_ZIP_DEBUG @@ -943,15 +935,19 @@ btr_cur_open_at_index_side_func( file, line, mtr); page = buf_block_get_frame(block); - if (srv_pass_corrupt_table && !page) { + SRV_CORRUPT_TABLE_CHECK(page, + { page_cursor->block = 0; page_cursor->rec = 0; + if (estimate) { - cursor->path_arr->nth_rec = ULINT_UNDEFINED; + + cursor->path_arr->nth_rec = + ULINT_UNDEFINED; } - break; - } - ut_a(page); + /* Can't use break with the macro */ + goto exit_loop; + }); ut_ad(index->id == btr_page_get_index_id(page)); @@ -1021,6 +1017,7 @@ btr_cur_open_at_index_side_func( page_no = btr_node_ptr_get_child_page_no(node_ptr, offsets); } +exit_loop: if (UNIV_LIKELY_NULL(heap)) { mem_heap_free(heap); } @@ -1074,12 +1071,13 @@ btr_cur_open_at_rnd_pos_func( file, line, mtr); page = buf_block_get_frame(block); - if (srv_pass_corrupt_table && !page) { + SRV_CORRUPT_TABLE_CHECK(page, + { page_cursor->block = 0; page_cursor->rec = 0; - break; - } - ut_a(page); + + goto exit_loop; + }); ut_ad(index->id == btr_page_get_index_id(page)); @@ -1112,6 +1110,7 @@ btr_cur_open_at_rnd_pos_func( page_no = btr_node_ptr_get_child_page_no(node_ptr, offsets); } +exit_loop: if (UNIV_LIKELY_NULL(heap)) { mem_heap_free(heap); } @@ -1300,10 +1299,7 @@ btr_cur_optimistic_insert( block = btr_cur_get_block(cursor); - if (srv_pass_corrupt_table && !block) { - return(DB_CORRUPTION); - } - ut_a(block); + SRV_CORRUPT_TABLE_CHECK(block, return(DB_CORRUPTION);); page = buf_block_get_frame(block); index = cursor->index; @@ -3149,10 +3145,7 @@ btr_cur_optimistic_delete( block = btr_cur_get_block(cursor); - if (srv_pass_corrupt_table && !block) { - return(DB_CORRUPTION); - } - ut_a(block); + SRV_CORRUPT_TABLE_CHECK(block, return(DB_CORRUPTION);); ut_ad(page_is_leaf(buf_block_get_frame(block))); @@ -3868,10 +3861,7 @@ btr_estimate_number_of_different_key_vals( page = btr_cur_get_page(&cursor); - if (srv_pass_corrupt_table && !page) { - break; - } - ut_a(page); + SRV_CORRUPT_TABLE_CHECK(page, goto exit_loop;); rec = page_rec_get_next(page_get_infimum_rec(page)); @@ -3957,6 +3947,7 @@ btr_estimate_number_of_different_key_vals( mtr_commit(&mtr); } +exit_loop: /* If we saw k borders between different key values on n_sample_pages leaf pages, we can estimate how many there will be in index->stat_n_leaf_pages */ diff --git a/btr/btr0pcur.c b/btr/btr0pcur.c index a1b7affdeb7..7c4ec2dd1ac 100644 --- a/btr/btr0pcur.c +++ b/btr/btr0pcur.c @@ -116,10 +116,7 @@ btr_pcur_store_position( block = btr_pcur_get_block(cursor); - if (srv_pass_corrupt_table && !block) { - return; - } - ut_a(block); + SRV_CORRUPT_TABLE_CHECK(block, return;); index = btr_cur_get_index(btr_pcur_get_btr_cur(cursor)); @@ -439,14 +436,16 @@ btr_pcur_move_to_next_page( btr_pcur_get_btr_cur(cursor)->index, mtr); next_page = buf_block_get_frame(next_block); - if (srv_pass_corrupt_table && !next_page) { + SRV_CORRUPT_TABLE_CHECK(next_page, + { btr_leaf_page_release(btr_pcur_get_block(cursor), cursor->latch_mode, mtr); btr_pcur_get_page_cur(cursor)->block = 0; btr_pcur_get_page_cur(cursor)->rec = 0; + return; - } - ut_a(next_page); + }); + #ifdef UNIV_BTR_DEBUG ut_a(page_is_comp(next_page) == page_is_comp(page)); ut_a(btr_page_get_prev(next_page, mtr) diff --git a/btr/btr0sea.c b/btr/btr0sea.c index 7e9449a6474..d53452bb959 100644 --- a/btr/btr0sea.c +++ b/btr/btr0sea.c @@ -649,10 +649,7 @@ btr_search_info_update_slow( block = btr_cur_get_block(cursor); - if (srv_pass_corrupt_table && !block) { - return; - } - ut_a(block); + SRV_CORRUPT_TABLE_CHECK(block, return;); /* NOTE that the following two function calls do NOT protect info or block->n_fields etc. with any semaphore, to save CPU time! diff --git a/buf/buf0buf.c b/buf/buf0buf.c index 5bcfb0f51b9..ae4b2fba98d 100644 --- a/buf/buf0buf.c +++ b/buf/buf0buf.c @@ -2002,27 +2002,6 @@ lookup: #endif /* UNIV_DEBUG || UNIV_BUF_DEBUG */ } - if (UNIV_UNLIKELY(bpage->space_was_being_deleted)) { - /* This page is obsoleted, should discard and retry */ - rw_lock_s_unlock(&buf_pool->page_hash_latch); - - mutex_enter(&buf_pool->LRU_list_mutex); - block_mutex = buf_page_get_mutex_enter(bpage); - - if (UNIV_UNLIKELY(!block_mutex)) { - mutex_exit(&buf_pool->LRU_list_mutex); - goto lookup; - } - - buf_LRU_free_block(bpage, TRUE, TRUE); - - mutex_exit(&buf_pool->LRU_list_mutex); - mutex_exit(block_mutex); - block_mutex = NULL; - - goto lookup; - } - if (UNIV_UNLIKELY(!bpage->zip.data)) { /* There is no compressed page. */ err_exit: @@ -2031,11 +2010,11 @@ err_exit: return(NULL); } - if (srv_pass_corrupt_table <= 1) { - if (bpage->is_corrupt) { - rw_lock_s_unlock(&buf_pool->page_hash_latch); - return(NULL); - } + if (UNIV_UNLIKELY(bpage->is_corrupt && srv_pass_corrupt_table <= 1)) { + + rw_lock_s_unlock(&buf_pool->page_hash_latch); + + return(NULL); } block_mutex = buf_page_get_mutex_enter(bpage); @@ -2533,26 +2512,6 @@ loop: block = (buf_block_t*) buf_page_hash_get_low( buf_pool, space, offset, fold); if (block) { - if (UNIV_UNLIKELY(block->page.space_was_being_deleted)) { - /* This page is obsoleted, should discard and retry */ - rw_lock_s_unlock(&buf_pool->page_hash_latch); - - mutex_enter(&buf_pool->LRU_list_mutex); - block_mutex = buf_page_get_mutex_enter((buf_page_t*)block); - - if (UNIV_UNLIKELY(!block_mutex)) { - mutex_exit(&buf_pool->LRU_list_mutex); - goto loop; - } - - buf_LRU_free_block((buf_page_t*)block, TRUE, TRUE); - - mutex_exit(&buf_pool->LRU_list_mutex); - mutex_exit(block_mutex); - block_mutex = NULL; - - goto loop; - } block_mutex = buf_page_get_mutex_enter((buf_page_t*)block); ut_a(block_mutex); @@ -2640,11 +2599,12 @@ got_block: return(NULL); } - if (srv_pass_corrupt_table <= 1) { - if (block->page.is_corrupt) { - mutex_exit(block_mutex); - return(NULL); - } + if (UNIV_UNLIKELY(block->page.is_corrupt && + srv_pass_corrupt_table <= 1)) { + + mutex_exit(block_mutex); + + return(NULL); } switch (buf_block_get_state(block)) { @@ -3487,28 +3447,12 @@ buf_page_init_for_read( fold = buf_page_address_fold(space, offset); -retry: //buf_pool_mutex_enter(buf_pool); mutex_enter(&buf_pool->LRU_list_mutex); rw_lock_x_lock(&buf_pool->page_hash_latch); watch_page = buf_page_hash_get_low(buf_pool, space, offset, fold); - if (UNIV_UNLIKELY(watch_page && watch_page->space_was_being_deleted)) { - mutex_t* block_mutex = buf_page_get_mutex_enter(watch_page); - - /* This page is obsoleted, should discard and retry */ - rw_lock_x_unlock(&buf_pool->page_hash_latch); - ut_a(block_mutex); - - buf_LRU_free_block(watch_page, TRUE, TRUE); - - mutex_exit(&buf_pool->LRU_list_mutex); - mutex_exit(block_mutex); - - goto retry; - } - if (watch_page && !buf_pool_watch_is_sentinel(buf_pool, watch_page)) { /* The page is already in the buffer pool. */ watch_page = NULL; @@ -3637,7 +3581,6 @@ err_exit: bpage->state = BUF_BLOCK_ZIP_PAGE; bpage->space = space; bpage->offset = offset; - bpage->space_was_being_deleted = FALSE; #ifdef UNIV_DEBUG bpage->in_page_hash = FALSE; @@ -3722,7 +3665,6 @@ buf_page_create( fold = buf_page_address_fold(space, offset); -retry: //buf_pool_mutex_enter(buf_pool); mutex_enter(&buf_pool->LRU_list_mutex); rw_lock_x_lock(&buf_pool->page_hash_latch); @@ -3730,21 +3672,6 @@ retry: block = (buf_block_t*) buf_page_hash_get_low( buf_pool, space, offset, fold); - if (UNIV_UNLIKELY(block && block->page.space_was_being_deleted)) { - mutex_t* block_mutex = buf_page_get_mutex_enter((buf_page_t*)block); - - /* This page is obsoleted, should discard and retry */ - rw_lock_x_unlock(&buf_pool->page_hash_latch); - ut_a(block_mutex); - - buf_LRU_free_block((buf_page_t*)block, TRUE, TRUE); - - mutex_exit(&buf_pool->LRU_list_mutex); - mutex_exit(block_mutex); - - goto retry; - } - if (block && buf_page_in_file(&block->page) && !buf_pool_watch_is_sentinel(buf_pool, &block->page)) { @@ -4001,7 +3928,8 @@ buf_page_io_complete( (ulong) bpage->offset); } - if (!srv_pass_corrupt_table || !bpage->is_corrupt) { + if (UNIV_LIKELY(!bpage->is_corrupt || + !srv_pass_corrupt_table)) { /* From version 3.23.38 up we store the page checksum to the 4 first bytes of the page end lsn field */ @@ -4086,13 +4014,26 @@ corrupt: } if (uncompressed && !recv_no_ibuf_operations) { + + buf_block_t* block; + ibool update_ibuf_bitmap; + + if (UNIV_UNLIKELY(bpage->is_corrupt && + srv_pass_corrupt_table)) { + + block = NULL; + update_ibuf_bitmap = FALSE; + + } else { + + block = (buf_block_t *) bpage; + update_ibuf_bitmap = TRUE; + } + ibuf_merge_or_delete_for_page( - /* Delete possible entries, if bpage is_corrupt */ - (srv_pass_corrupt_table && bpage->is_corrupt) ? NULL : - (buf_block_t*) bpage, bpage->space, + block, bpage->space, bpage->offset, buf_page_get_zip_size(bpage), - (srv_pass_corrupt_table && bpage->is_corrupt) ? FALSE : - TRUE); + update_ibuf_bitmap); } } diff --git a/buf/buf0flu.c b/buf/buf0flu.c index 663e2d8f537..9452b53df38 100644 --- a/buf/buf0flu.c +++ b/buf/buf0flu.c @@ -459,7 +459,7 @@ buf_flush_ready_for_replace( if (UNIV_LIKELY(bpage->in_LRU_list && buf_page_in_file(bpage))) { - return((bpage->oldest_modification == 0 || bpage->space_was_being_deleted) + return(bpage->oldest_modification == 0 && buf_page_get_io_fix(bpage) == BUF_IO_NONE && bpage->buf_fix_count == 0); } @@ -501,13 +501,6 @@ buf_flush_ready_for_flush( && buf_page_get_io_fix(bpage) == BUF_IO_NONE) { ut_ad(bpage->in_flush_list); - if (bpage->space_was_being_deleted) { - /* should be removed from flush_list here */ - /* because buf_flush_try_neighbors() cannot flush without fil_space_get_size(space) */ - buf_flush_remove(bpage); - return(FALSE); - } - if (flush_type != BUF_FLUSH_LRU) { return(TRUE); diff --git a/buf/buf0lru.c b/buf/buf0lru.c index bbf483c708a..ef747ce470d 100644 --- a/buf/buf0lru.c +++ b/buf/buf0lru.c @@ -884,42 +884,6 @@ buf_LRU_flush_or_remove_pages( } } -/******************************************************************//** -*/ -UNIV_INTERN -void -buf_LRU_mark_space_was_deleted( -/*===========================*/ - ulint id) /*!< in: space id */ -{ - ulint i; - - for (i = 0; i < srv_buf_pool_instances; i++) { - buf_pool_t* buf_pool; - buf_page_t* bpage; - - buf_pool = buf_pool_from_array(i); - - mutex_enter(&buf_pool->LRU_list_mutex); - - bpage = UT_LIST_GET_FIRST(buf_pool->LRU); - - while (bpage != NULL) { - if (buf_page_get_space(bpage) == id) { - bpage->space_was_being_deleted = TRUE; - } - bpage = UT_LIST_GET_NEXT(LRU, bpage); - } - - mutex_exit(&buf_pool->LRU_list_mutex); - - /* The AHI entries for the tablespace being deleted should be - removed by now. */ - ut_ad(buf_LRU_drop_page_hash_for_tablespace(buf_pool, id) - == 0); - } -} - #if defined UNIV_DEBUG || defined UNIV_BUF_DEBUG /********************************************************************//** Insert a compressed block into buf_pool->zip_clean in the LRU order. */ @@ -1891,10 +1855,6 @@ buf_LRU_free_block( return(FALSE); } - if (bpage->space_was_being_deleted && bpage->oldest_modification != 0) { - buf_flush_remove(bpage); - } - #ifdef UNIV_IBUF_COUNT_DEBUG ut_a(ibuf_count_get(bpage->space, bpage->offset) == 0); #endif /* UNIV_IBUF_COUNT_DEBUG */ diff --git a/buf/buf0rea.c b/buf/buf0rea.c index cf0a029df92..5edbeadb64e 100644 --- a/buf/buf0rea.c +++ b/buf/buf0rea.c @@ -245,13 +245,7 @@ not_to_recover: return(0); } - if (srv_pass_corrupt_table) { - if (*err != DB_SUCCESS) { - bpage->is_corrupt = TRUE; - } - } else { - ut_a(*err == DB_SUCCESS); - } + SRV_CORRUPT_TABLE_CHECK(*err == DB_SUCCESS, bpage->is_corrupt = TRUE;); if (sync) { /* The i/o is already completed when we arrive from diff --git a/dict/dict0dict.c b/dict/dict0dict.c index 461bdd55ad3..6e883e5048b 100644 --- a/dict/dict0dict.c +++ b/dict/dict0dict.c @@ -4419,7 +4419,7 @@ dict_reload_statistics( while (index) { mtr_t mtr; - if (table->is_corrupt) { + if (UNIV_UNLIKELY(table->is_corrupt)) { ut_a(srv_pass_corrupt_table); mem_heap_free(heap); return(FALSE); @@ -4577,7 +4577,7 @@ dict_store_statistics( heap = mem_heap_create(1000); while (index) { - if (table->is_corrupt) { + if (UNIV_UNLIKELY(table->is_corrupt)) { ut_a(srv_pass_corrupt_table); mem_heap_free(heap); return; @@ -4771,7 +4771,7 @@ dict_update_statistics( mtr_t mtr; ulint size; - if (table->is_corrupt) { + if (UNIV_UNLIKELY(table->is_corrupt)) { ut_a(srv_pass_corrupt_table); dict_table_stats_unlock(table, RW_X_LATCH); return; diff --git a/fil/fil0fil.c b/fil/fil0fil.c index a90f47bda91..1c53c02efb4 100644 --- a/fil/fil0fil.c +++ b/fil/fil0fil.c @@ -2426,15 +2426,11 @@ try_again: To deal with potential read requests by checking the ::stop_new_ops flag in fil_io() */ - if (srv_lazy_drop_table) { - buf_LRU_mark_space_was_deleted(id); - } else { buf_LRU_flush_or_remove_pages( id, evict_all ? BUF_REMOVE_ALL_NO_WRITE : BUF_REMOVE_FLUSH_NO_WRITE); - } #endif /* printf("Deleting tablespace %s id %lu\n", space->name, id); */ @@ -5304,22 +5300,6 @@ _fil_io( srv_data_written+= len; } - /* if the table space was already deleted, space might not exist already. */ - if (message - && space_id < SRV_LOG_SPACE_FIRST_ID - && ((buf_page_t*)message)->space_was_being_deleted) { - - if (mode == OS_AIO_NORMAL) { - buf_page_io_complete(message); - return(DB_SUCCESS); /*fake*/ - } - if (type == OS_FILE_READ) { - return(DB_TABLESPACE_DELETED); - } else { - return(DB_SUCCESS); /*fake*/ - } - } - /* Reserve the fil_system mutex and make sure that we can open at least one file while holding it, if the file is not already open */ @@ -5423,35 +5403,38 @@ _fil_io( ut_a(byte_offset % OS_MIN_LOG_BLOCK_SIZE == 0); ut_a((len % OS_MIN_LOG_BLOCK_SIZE) == 0); - if (srv_pass_corrupt_table == 1 && space->is_corrupt) { +#ifndef UNIV_HOTBACKUP + if (UNIV_UNLIKELY(space->is_corrupt && srv_pass_corrupt_table)) { + /* should ignore i/o for the crashed space */ - mutex_enter(&fil_system->mutex); - fil_node_complete_io(node, fil_system, type); - mutex_exit(&fil_system->mutex); - if (mode == OS_AIO_NORMAL) { - ut_a(space->purpose == FIL_TABLESPACE); - buf_page_io_complete(message); - } - if (type == OS_FILE_READ) { - return(DB_TABLESPACE_DELETED); - } else { - return(DB_SUCCESS); - } - } else { - if (srv_pass_corrupt_table > 1 && space->is_corrupt) { - /* should ignore write i/o for the crashed space */ - if (type == OS_FILE_WRITE) { - mutex_enter(&fil_system->mutex); - fil_node_complete_io(node, fil_system, type); - mutex_exit(&fil_system->mutex); - if (mode == OS_AIO_NORMAL) { - ut_a(space->purpose == FIL_TABLESPACE); - buf_page_io_complete(message); - } - return(DB_SUCCESS); + if (srv_pass_corrupt_table == 1 || + type == OS_FILE_WRITE) { + + mutex_enter(&fil_system->mutex); + fil_node_complete_io(node, fil_system, type); + mutex_exit(&fil_system->mutex); + if (mode == OS_AIO_NORMAL) { + ut_a(space->purpose == FIL_TABLESPACE); + buf_page_io_complete(message); } } -#ifdef UNIV_HOTBACKUP + + if (srv_pass_corrupt_table == 1 && type == OS_FILE_READ) { + + return(DB_TABLESPACE_DELETED); + + } else if (type == OS_FILE_WRITE) { + + return(DB_SUCCESS); + } + } /**/ + + /* Queue the aio request */ + ret = os_aio(type, mode | wake_later, node->name, node->handle, buf, + offset_low, offset_high, len, node, message, space_id, + trx); + +#else /* In ibbackup do normal i/o, not aio */ if (type == OS_FILE_READ) { ret = os_file_read(node->handle, buf, offset_low, offset_high, @@ -5460,26 +5443,7 @@ _fil_io( ret = os_file_write(node->name, node->handle, buf, offset_low, offset_high, len); } -#else - /* Queue the aio request */ - ret = os_aio(type, mode | wake_later, node->name, node->handle, buf, - offset_low, offset_high, len, node, message, space_id, trx); #endif - } /**/ - - /* if the table space was already deleted, space might not exist already. */ - if (message - && space_id < SRV_LOG_SPACE_FIRST_ID - && ((buf_page_t*)message)->space_was_being_deleted) { - - if (mode == OS_AIO_SYNC) { - if (type == OS_FILE_READ) { - return(DB_TABLESPACE_DELETED); - } else { - return(DB_SUCCESS); /*fake*/ - } - } - } ut_a(ret); @@ -5603,21 +5567,6 @@ fil_aio_wait( &message, &type, &space_id); } - /* if the table space was already deleted, fil_node might not exist already. */ - if (message - && space_id < SRV_LOG_SPACE_FIRST_ID - && ((buf_page_t*)message)->space_was_being_deleted) { - - /* intended not to be uncompress read page */ - ut_a(buf_page_get_io_fix_unlocked(message) == BUF_IO_WRITE - || !buf_page_get_zip_size(message) - || buf_page_get_state(message) != BUF_BLOCK_FILE_PAGE); - - srv_set_io_thread_op_info(segment, "complete io for buf page"); - buf_page_io_complete(message); - return; - } - ut_a(ret); if (UNIV_UNLIKELY(fil_node == NULL)) { ut_ad(srv_shutdown_state == SRV_SHUTDOWN_EXIT_THREADS); diff --git a/fsp/fsp0fsp.c b/fsp/fsp0fsp.c index cf066404555..24d5183f880 100644 --- a/fsp/fsp0fsp.c +++ b/fsp/fsp0fsp.c @@ -317,10 +317,7 @@ fsp_get_space_header( block = buf_page_get(id, zip_size, 0, RW_X_LATCH, mtr); - if (srv_pass_corrupt_table && !block) { - return(0); - } - ut_a(block); + SRV_CORRUPT_TABLE_CHECK(block, return(0);); header = FSP_HEADER_OFFSET + buf_block_get_frame(block); buf_block_dbg_add_level(block, SYNC_FSP_PAGE); @@ -731,10 +728,7 @@ xdes_get_descriptor( block = buf_page_get(space, zip_size, 0, RW_X_LATCH, mtr); - if (srv_pass_corrupt_table && !block) { - return(0); - } - ut_a(block); + SRV_CORRUPT_TABLE_CHECK(block, return(0);); buf_block_dbg_add_level(block, SYNC_FSP_PAGE); @@ -1882,10 +1876,7 @@ fsp_seg_inode_page_find_free( { fseg_inode_t* inode; - if (srv_pass_corrupt_table && !page) { - return(ULINT_UNDEFINED); - } - ut_a(page); + SRV_CORRUPT_TABLE_CHECK(page, return(ULINT_UNDEFINED);); for (; i < FSP_SEG_INODES_PER_PAGE(zip_size); i++) { @@ -1999,10 +1990,7 @@ fsp_alloc_seg_inode( page = buf_block_get_frame(block); - if (srv_pass_corrupt_table && !page) { - return(0); - } - ut_a(page); + SRV_CORRUPT_TABLE_CHECK(page, return(0);); n = fsp_seg_inode_page_find_free(page, 0, zip_size, mtr); @@ -2097,10 +2085,7 @@ fseg_inode_try_get( inode = fut_get_ptr(space, zip_size, inode_addr, RW_X_LATCH, mtr); - if (srv_pass_corrupt_table && !inode) { - return(0); - } - ut_a(inode); + SRV_CORRUPT_TABLE_CHECK(inode, return(0);); if (UNIV_UNLIKELY(!mach_read_from_8(inode + FSEG_ID))) { @@ -2128,7 +2113,7 @@ fseg_inode_get( { fseg_inode_t* inode = fseg_inode_try_get(header, space, zip_size, mtr); - ut_a(srv_pass_corrupt_table || inode); + SRV_CORRUPT_TABLE_CHECK(inode, ; /* do nothing */); return(inode); } @@ -3320,12 +3305,12 @@ fseg_free_page_low( descr = xdes_get_descriptor(space, zip_size, page, mtr); - if (srv_pass_corrupt_table && !descr) { + SRV_CORRUPT_TABLE_CHECK(descr, + { /* The page may be corrupt. pass it. */ return; - } + }); - ut_a(descr); if (xdes_get_bit(descr, XDES_FREE_BIT, page % FSP_EXTENT_SIZE, mtr)) { fputs("InnoDB: Dump of the tablespace extent descriptor: ", stderr); @@ -3574,15 +3559,15 @@ fseg_free_step( descr = xdes_get_descriptor(space, zip_size, header_page, mtr); - if (srv_pass_corrupt_table && !descr) { + SRV_CORRUPT_TABLE_CHECK(descr, + { /* The page may be corrupt. pass it. */ return(TRUE); - } + }); /* Check that the header resides on a page which has not been freed yet */ - ut_a(descr); ut_a(xdes_get_bit(descr, XDES_FREE_BIT, header_page % FSP_EXTENT_SIZE, mtr) == FALSE); inode = fseg_inode_try_get(header, space, zip_size, mtr); @@ -3663,11 +3648,11 @@ fseg_free_step_not_header( inode = fseg_inode_get(header, space, zip_size, mtr); - if (srv_pass_corrupt_table && !inode) { + SRV_CORRUPT_TABLE_CHECK(inode, + { /* ignore the corruption */ return(TRUE); - } - ut_a(inode); + }); descr = fseg_get_first_extent(inode, space, zip_size, mtr); diff --git a/handler/ha_innodb.cc b/handler/ha_innodb.cc index ff18ffbecdf..569770602d0 100644 --- a/handler/ha_innodb.cc +++ b/handler/ha_innodb.cc @@ -202,6 +202,8 @@ static ulong innobase_sys_stats_root_page = 0; #endif static my_bool innobase_buffer_pool_shm_checksum = TRUE; static uint innobase_buffer_pool_shm_key = 0; +static ulong srv_lazy_drop_table = 0; + static char* internal_innobase_data_file_path = NULL; @@ -1910,7 +1912,7 @@ trx_is_started( /*===========*/ trx_t* trx) /* in: transaction */ { - return(trx->conc_state != TRX_NOT_STARTED); + return(trx->state != TRX_NOT_STARTED); } /*********************************************************************//** @@ -3009,6 +3011,12 @@ innobase_change_buffering_inited_ok: "InnoDB: innodb_buffer_pool_shm_key was ignored.\n"); } + if (srv_lazy_drop_table) { + fprintf(stderr, + "InnoDB: Warning: " + "innodb_lazy_drop_table is deprecated and ignored.\n"); + } + srv_mem_pool_size = (ulint) innobase_additional_mem_pool_size; srv_n_file_io_threads = (ulint) innobase_file_io_threads; @@ -4599,7 +4607,8 @@ ha_innobase::open( DBUG_RETURN(1); } - if (srv_pass_corrupt_table <= 1 && share->ib_table && share->ib_table->is_corrupt) { + if (UNIV_UNLIKELY(share->ib_table && share->ib_table->is_corrupt && + srv_pass_corrupt_table <= 1)) { free_share(share); DBUG_RETURN(HA_ERR_CRASHED_ON_USAGE); @@ -4624,7 +4633,8 @@ retry: /* Get pointer to a table object in InnoDB dictionary cache */ ib_table = dict_table_get(norm_name, TRUE); - if (srv_pass_corrupt_table <= 1 && ib_table && ib_table->is_corrupt) { + if (UNIV_UNLIKELY(ib_table && ib_table->is_corrupt && + srv_pass_corrupt_table <= 1)) { free_share(share); my_free(upd_buf); upd_buf = NULL; @@ -6692,7 +6702,8 @@ ha_innobase::index_read( ha_statistic_increment(&SSV::ha_read_key_count); - if (srv_pass_corrupt_table <= 1 && share->ib_table->is_corrupt) { + if (UNIV_UNLIKELY(share->ib_table->is_corrupt && + srv_pass_corrupt_table <= 1)) { DBUG_RETURN(HA_ERR_CRASHED); } @@ -6763,7 +6774,8 @@ ha_innobase::index_read( ret = DB_UNSUPPORTED; } - if (srv_pass_corrupt_table <= 1 && share->ib_table->is_corrupt) { + if (UNIV_UNLIKELY(share->ib_table->is_corrupt && + srv_pass_corrupt_table <= 1)) { DBUG_RETURN(HA_ERR_CRASHED); } @@ -6881,7 +6893,8 @@ ha_innobase::change_active_index( { DBUG_ENTER("change_active_index"); - if (srv_pass_corrupt_table <= 1 && share->ib_table->is_corrupt) { + if (UNIV_UNLIKELY(share->ib_table->is_corrupt && + srv_pass_corrupt_table <= 1)) { DBUG_RETURN(HA_ERR_CRASHED); } @@ -6998,7 +7011,8 @@ ha_innobase::general_fetch( DBUG_ENTER("general_fetch"); - if (srv_pass_corrupt_table <= 1 && share->ib_table->is_corrupt) { + if (UNIV_UNLIKELY(share->ib_table->is_corrupt && + srv_pass_corrupt_table <= 1)) { DBUG_RETURN(HA_ERR_CRASHED); } @@ -7011,7 +7025,8 @@ ha_innobase::general_fetch( innodb_srv_conc_exit_innodb(prebuilt->trx); - if (srv_pass_corrupt_table <= 1 && share->ib_table->is_corrupt) { + if (UNIV_UNLIKELY(share->ib_table->is_corrupt && + srv_pass_corrupt_table <= 1)) { DBUG_RETURN(HA_ERR_CRASHED); } @@ -9039,7 +9054,7 @@ ha_innobase::info_low( prebuilt->trx->op_info = "confirming rows of SYS_STATS to store statistics"; - ut_a(prebuilt->trx->conc_state == TRX_NOT_STARTED); + ut_a(!trx_is_started(prebuilt->trx)); for (index = dict_table_get_first_index(ib_table); index != NULL; @@ -9052,7 +9067,7 @@ ha_innobase::info_low( innobase_commit_low(prebuilt->trx); } - ut_a(prebuilt->trx->conc_state == TRX_NOT_STARTED); + ut_a(!trx_is_started(prebuilt->trx)); } prebuilt->trx->op_info = "updating table statistics"; @@ -13020,8 +13035,7 @@ static MYSQL_SYSVAR_ENUM(corrupt_table_action, srv_pass_corrupt_table, static MYSQL_SYSVAR_ULONG(lazy_drop_table, srv_lazy_drop_table, PLUGIN_VAR_RQCMDARG, - "At deleting tablespace, only miminum needed processes at the time are done. " - "e.g. for http://bugs.mysql.com/51325", + "[Deprecated option] no effect", NULL, NULL, 0, 0, 1, 0); static MYSQL_SYSVAR_BOOL(locking_fake_changes, srv_fake_changes_locks, diff --git a/include/btr0btr.ic b/include/btr0btr.ic index 53c8159c448..798107628d7 100644 --- a/include/btr0btr.ic +++ b/include/btr0btr.ic @@ -59,7 +59,7 @@ btr_block_get_func( block = buf_page_get_gen(space, zip_size, page_no, mode, NULL, BUF_GET, file, line, mtr); - ut_a(srv_pass_corrupt_table || block); + SRV_CORRUPT_TABLE_CHECK(block, ; /* do nothing */); if (block && mode != RW_NO_LATCH) { diff --git a/include/buf0buf.h b/include/buf0buf.h index f4f9cc47ff4..991fdb7ca88 100644 --- a/include/buf0buf.h +++ b/include/buf0buf.h @@ -1587,7 +1587,6 @@ struct buf_page_struct{ 0 if the block was never accessed in the buffer pool. Protected by block mutex */ - ibool space_was_being_deleted; ibool is_corrupt; # if defined UNIV_DEBUG_FILE_ACCESSES || defined UNIV_DEBUG ibool file_page_was_freed; diff --git a/include/buf0buf.ic b/include/buf0buf.ic index 8d5c3edeef8..18c46b6412e 100644 --- a/include/buf0buf.ic +++ b/include/buf0buf.ic @@ -430,7 +430,6 @@ buf_block_set_file_page( buf_block_set_state(block, BUF_BLOCK_FILE_PAGE); block->page.space = space; block->page.offset = page_no; - block->page.space_was_being_deleted = FALSE; } /*********************************************************************//** @@ -712,13 +711,7 @@ buf_block_get_frame( /*================*/ const buf_block_t* block) /*!< in: pointer to the control block */ { - ut_a(srv_pass_corrupt_table || block); - - if (srv_pass_corrupt_table && !block) { - return(0); - } - - ut_ad(block); + SRV_CORRUPT_TABLE_CHECK(block, return(0);); switch (buf_block_get_state(block)) { case BUF_BLOCK_ZIP_FREE: diff --git a/include/buf0flu.ic b/include/buf0flu.ic index 30e2cc8efe8..8228c025d23 100644 --- a/include/buf0flu.ic +++ b/include/buf0flu.ic @@ -70,7 +70,7 @@ buf_flush_note_modification( ut_ad(!buf_pool_mutex_own(buf_pool)); ut_ad(!buf_flush_list_mutex_own(buf_pool)); - ut_ad(log_flush_order_mutex_own()); + ut_ad(!mtr->made_dirty || log_flush_order_mutex_own()); ut_ad(mtr->start_lsn != 0); ut_ad(mtr->modifications); diff --git a/include/buf0lru.h b/include/buf0lru.h index 2ea4f9b1ecf..8bb3aed4059 100644 --- a/include/buf0lru.h +++ b/include/buf0lru.h @@ -73,13 +73,6 @@ buf_LRU_flush_or_remove_pages( enum buf_remove_t buf_remove);/*!< in: remove or flush strategy */ -/******************************************************************//** -*/ -UNIV_INTERN -void -buf_LRU_mark_space_was_deleted( -/*===========================*/ - ulint id); /*!< in: space id */ #if defined UNIV_DEBUG || defined UNIV_BUF_DEBUG /********************************************************************//** Insert a compressed block into buf_pool->zip_clean in the LRU order. */ diff --git a/include/fut0fut.ic b/include/fut0fut.ic index 529f2a516d3..63e5736d99e 100644 --- a/include/fut0fut.ic +++ b/include/fut0fut.ic @@ -50,10 +50,7 @@ fut_get_ptr( block = buf_page_get(space, zip_size, addr.page, rw_latch, mtr); - if (srv_pass_corrupt_table && !block) { - return(0); - } - ut_a(block); + SRV_CORRUPT_TABLE_CHECK(block, return(0);); ptr = buf_block_get_frame(block) + addr.boffset; diff --git a/include/log0log.h b/include/log0log.h index ee20f429a2b..e4c19c41137 100644 --- a/include/log0log.h +++ b/include/log0log.h @@ -122,16 +122,24 @@ UNIV_INLINE void log_free_check(void); /*================*/ -/************************************************************//** -Opens the log for log_write_low. The log must be closed with log_close and -released with log_release. -@return start lsn of the log record */ -UNIV_INTERN +/**************************************************************************//** +Locks the log mutex and opens the log for log_write_low. The log must be closed +with log_close and released with log_release. +@return start lsn of the log record */ +UNIV_INLINE ib_uint64_t log_reserve_and_open( /*=================*/ ulint len); /*!< in: length of data to be catenated */ /************************************************************//** +Opens the log for log_write_low. The log must be closed with log_close. +@return start lsn of the log record */ +UNIV_INTERN +ib_uint64_t +log_open( +/*=====*/ + ulint len); /*!< in: length of data to be catenated */ +/************************************************************//** Writes to the log the string given. It is assumed that the caller holds the log mutex. */ UNIV_INTERN diff --git a/include/log0log.ic b/include/log0log.ic index 67db6695cab..c39586dbcf9 100644 --- a/include/log0log.ic +++ b/include/log0log.ic @@ -332,10 +332,10 @@ log_reserve_and_write_fast( if (data_len >= OS_FILE_LOG_BLOCK_SIZE - LOG_BLOCK_TRL_SIZE) { - /* The string does not fit within the current log block - or the log block would become full */ - - mutex_exit(&log_sys->mutex); + /* The string does not fit within the current log block or the + log block would become full. Do not release the log mutex, + because it has to be reacquired immediately for the "slow" write + procedure via log_write_low(). */ return(0); } @@ -382,6 +382,21 @@ log_reserve_and_write_fast( return(log_sys->lsn); } +/**************************************************************************//** +Locks the log mutex and opens the log for log_write_low. The log must be closed +with log_close and released with log_release. +@return start lsn of the log record */ +UNIV_INLINE +ib_uint64_t +log_reserve_and_open( +/*=================*/ + ulint len) /*!< in: length of data to be catenated */ +{ + mutex_enter(&(log_sys->mutex)); + + return log_open(len); +} + /***********************************************************************//** Releases the log mutex. */ UNIV_INLINE diff --git a/include/mtr0mtr.h b/include/mtr0mtr.h index 46f1ff9310c..c51632e0ed5 100644 --- a/include/mtr0mtr.h +++ b/include/mtr0mtr.h @@ -375,6 +375,8 @@ struct mtr_struct{ ibool modifications; /* TRUE if the mtr made modifications to buffer pool pages */ + ibool made_dirty;/*!< TRUE if mtr has made at least + one buffer pool page dirty */ ulint n_log_recs; /* count of how many page initial log records have been written to the mtr log */ diff --git a/include/mtr0mtr.ic b/include/mtr0mtr.ic index a03a0271535..7b5d268b70f 100644 --- a/include/mtr0mtr.ic +++ b/include/mtr0mtr.ic @@ -29,6 +29,17 @@ Created 11/26/1995 Heikki Tuuri #endif /* !UNIV_HOTBACKUP */ #include "mach0data.h" +/***************************************************//** +Checks if a mini-transaction is dirtying a clean page. +@return TRUE if the mtr is dirtying a clean page. */ +UNIV_INTERN +ibool +mtr_block_dirtied( +/*==============*/ + const buf_block_t* block) /*!< in: block being x-fixed */ + __attribute__((nonnull,warn_unused_result)); + + /***************************************************************//** Starts a mini-transaction. */ UNIV_INLINE @@ -47,6 +58,7 @@ mtr_start( mtr->inside_ibuf = FALSE; mtr->n_log_recs = 0; mtr->n_freed_pages = 0; + mtr->made_dirty = FALSE; ut_d(mtr->state = MTR_ACTIVE); ut_d(mtr->magic_n = MTR_MAGIC_N); @@ -65,6 +77,15 @@ mtr_memo_push( dyn_array_t* memo; mtr_memo_slot_t* slot; + /* If this mtr has x-fixed a clean page then we set + the made_dirty flag. This tells us if we need to + grab log_flush_order_mutex at mtr_commit so that we + can insert the dirtied page to the flush list. */ + if (type == MTR_MEMO_PAGE_X_FIX && !mtr->made_dirty) { + mtr->made_dirty = + mtr_block_dirtied((const buf_block_t *)object); + } + ut_ad(object); ut_ad(type >= MTR_MEMO_PAGE_S_FIX); ut_ad(type <= MTR_MEMO_X_LOCK); diff --git a/include/read0read.h b/include/read0read.h index 0c9468d985e..dd378ecc997 100644 --- a/include/read0read.h +++ b/include/read0read.h @@ -32,6 +32,7 @@ Created 2/16/1997 Heikki Tuuri #include "ut0byte.h" #include "ut0lst.h" #include "trx0trx.h" +#include "trx0sys.h" #include "read0types.h" /*********************************************************************//** @@ -44,8 +45,11 @@ read_view_open_now( /*===============*/ trx_id_t cr_trx_id, /*!< in: trx_id of creating transaction, or 0 used in purge */ - mem_heap_t* heap); /*!< in: memory heap from which - allocated */ + read_view_t* view, /*!< in: current read view or NULL if it + doesn't exist yet */ + ibool exclude_self); /*!< in: TRUE, if cr_trx_id should be + excluded from the resulting view */ + /*********************************************************************//** Makes a copy of the oldest existing read view, or opens a new. The view must be closed with ..._close. @@ -56,8 +60,8 @@ read_view_oldest_copy_or_open_new( /*==============================*/ trx_id_t cr_trx_id, /*!< in: trx_id of creating transaction, or 0 used in purge */ - mem_heap_t* heap); /*!< in: memory heap from which - allocated */ + read_view_t* view); /*!< in: pre-allocated view array or + NULL if a new one needs to be created */ /*********************************************************************//** Closes a read view. */ UNIV_INTERN @@ -66,6 +70,13 @@ read_view_close( /*============*/ read_view_t* view); /*!< in: read view */ /*********************************************************************//** +Frees memory allocated by a read view. */ +UNIV_INTERN +void +read_view_free( +/*===========*/ + read_view_t* view); /*< in: read view */ +/*********************************************************************//** Closes a consistent read view for MySQL. This function is called at an SQL statement end if the trx isolation level is <= TRX_ISO_READ_COMMITTED. */ UNIV_INTERN @@ -143,16 +154,20 @@ struct read_view_struct{ are strictly smaller (<) than this value. In other words, this is the "low water mark". */ - ulint n_trx_ids; + ulint n_descr; /*!< Number of cells in the trx_ids array */ - trx_id_t* trx_ids;/*!< Additional trx ids which the read should - not see: typically, these are the active + ulint max_descr; + /*!< Maximum number of cells in the trx_ids + array */ + trx_id_t* descriptors; + /*!< Array of trx descriptors which the read + should not see: typically, these are the active transactions at the time when the read is serialized, except the reading transaction itself; the trx ids in this array are in a descending order. These trx_ids should be - between the "low" and "high" water marks, - that is, up_limit_id and low_limit_id. */ + between the "low" and "high" water marks, that + is, up_limit_id and low_limit_id. */ trx_id_t creator_trx_id; /*!< trx id of creating transaction, or 0 used in purge */ diff --git a/include/read0read.ic b/include/read0read.ic index 5bb5249b591..ebcdb767406 100644 --- a/include/read0read.ic +++ b/include/read0read.ic @@ -25,6 +25,11 @@ Created 2/16/1997 Heikki Tuuri /*********************************************************************//** Gets the nth trx id in a read view. + +Upstream code stores array of trx_ids in the descending order. Percona Server +keeps it in the ascending order for performance reasons. Let us keep the +semantics. + @return trx id */ UNIV_INLINE trx_id_t @@ -33,13 +38,17 @@ read_view_get_nth_trx_id( const read_view_t* view, /*!< in: read view */ ulint n) /*!< in: position */ { - ut_ad(n < view->n_trx_ids); + ut_ad(n < view->n_descr); - return(*(view->trx_ids + n)); + return(view->descriptors[view->n_descr - 1 - n]); } /*********************************************************************//** -Sets the nth trx id in a read view. */ +Sets the nth trx id in a read view. + +Upstream code stores array of trx_ids in the descending order. Percona Server +keeps it in the ascending order for performance reasons. Let us keep the +semantics. */ UNIV_INLINE void read_view_set_nth_trx_id( @@ -48,9 +57,9 @@ read_view_set_nth_trx_id( ulint n, /*!< in: position */ trx_id_t trx_id) /*!< in: trx id to set */ { - ut_ad(n < view->n_trx_ids); + ut_ad(n < view->n_descr); - *(view->trx_ids + n) = trx_id; + view->descriptors[view->n_descr - 1 - n] = trx_id; } /*********************************************************************//** @@ -63,9 +72,6 @@ read_view_sees_trx_id( const read_view_t* view, /*!< in: read view */ trx_id_t trx_id) /*!< in: trx id */ { - ulint n_ids; - ulint i; - if (trx_id < view->up_limit_id) { return(TRUE); @@ -76,21 +82,8 @@ read_view_sees_trx_id( return(FALSE); } - /* We go through the trx ids in the array smallest first: this order - may save CPU time, because if there was a very long running - transaction in the trx id array, its trx id is looked at first, and - the first two comparisons may well decide the visibility of trx_id. */ + /* Do a binary search over this view's descriptors array */ - n_ids = view->n_trx_ids; - - for (i = 0; i < n_ids; i++) { - trx_id_t view_trx_id - = read_view_get_nth_trx_id(view, n_ids - i - 1); - - if (trx_id <= view_trx_id) { - return(trx_id != view_trx_id); - } - } - - return(TRUE); + return(trx_find_descriptor(view->descriptors, view->n_descr, + trx_id) == NULL); } diff --git a/include/srv0srv.h b/include/srv0srv.h index 53dbdf8bd8f..c4fb9712b51 100644 --- a/include/srv0srv.h +++ b/include/srv0srv.h @@ -266,9 +266,22 @@ extern ulint srv_adaptive_flushing_method; extern ulint srv_expand_import; extern ulint srv_pass_corrupt_table; -extern ulint srv_dict_size_limit; +/* Helper macro to support srv_pass_corrupt_table checks. If 'cond' is FALSE, +execute 'code' if srv_pass_corrupt_table is non-zero, or trigger a fatal error +otherwise. The break statement in 'code' will obviously not work as expected. */ -extern ulint srv_lazy_drop_table; +#define SRV_CORRUPT_TABLE_CHECK(cond,code) \ + do { \ + if (UNIV_UNLIKELY(!(cond))) { \ + if (srv_pass_corrupt_table) { \ + code \ + } else { \ + ut_error; \ + } \ + } \ + } while(0) + +extern ulint srv_dict_size_limit; /*-------------------------------------------*/ extern ulint srv_n_rows_inserted; diff --git a/include/trx0purge.h b/include/trx0purge.h index 1e8acd65e01..1ddc9068b8e 100644 --- a/include/trx0purge.h +++ b/include/trx0purge.h @@ -143,6 +143,7 @@ struct trx_purge_struct{ obtaining an s-latch here. */ read_view_t* view; /*!< The purge will not remove undo logs which are >= this view (purge view) */ + read_view_t* prebuilt_view; /*!< Pre-built view array */ ulonglong n_pages_handled;/*!< Approximate number of undo log pages processed in purge */ ulonglong handle_limit; /*!< Target of how many pages to get diff --git a/include/trx0sys.h b/include/trx0sys.h index cba21ae97a9..75a3b0fb4fd 100644 --- a/include/trx0sys.h +++ b/include/trx0sys.h @@ -249,6 +249,17 @@ trx_id_t trx_sys_get_new_trx_id(void); /*========================*/ +/*************************************************************//** +Find a slot for a given trx ID in a descriptors array. +@return: slot pointer */ +UNIV_INLINE +trx_id_t* +trx_find_descriptor( +/*================*/ + const trx_id_t* descriptors, /*!< in: descriptors array */ + ulint n_descr, /*!< in: array size */ + trx_id_t trx_id); /*!< in: trx pointer */ + #ifdef UNIV_DEBUG /* Flag to control TRX_RSEG_N_SLOTS behavior debugging. */ extern uint trx_rseg_n_slots_debug; @@ -633,6 +644,8 @@ identifier is added to this 64-bit constant. */ | TRX_SYS_FILE_FORMAT_TAG_MAGIC_N_LOW) /* @} */ +#define TRX_DESCR_ARRAY_INITIAL_SIZE 1000 + #ifndef UNIV_HOTBACKUP /** Doublewrite control struct */ struct trx_doublewrite_struct{ @@ -660,16 +673,41 @@ struct trx_sys_struct{ trx_id_t max_trx_id; /*!< The smallest number not yet assigned as a transaction id or transaction number */ + char pad1[64]; /*!< Ensure max_trx_id does not share + cache line with other fields. */ + trx_id_t* descriptors; /*!< Array of trx descriptors */ + ulint descr_n_max; /*!< The current size of the descriptors + array. */ + char pad2[64]; /*!< Ensure static descriptor fields + do not share cache lines with + descr_n_used */ + ulint descr_n_used; /*!< Number of used elements in the + descriptors array. */ + char pad3[64]; /*!< Ensure descriptors do not share + cache line with other fields */ UT_LIST_BASE_NODE_T(trx_t) trx_list; /*!< List of active and committed in memory transactions, sorted on trx id, biggest first */ + char pad4[64]; /*!< Ensure list base nodes do not + share cache line with other fields */ UT_LIST_BASE_NODE_T(trx_t) mysql_trx_list; /*!< List of transactions created for MySQL */ + char pad5[64]; /*!< Ensure list base nodes do not + share cache line with other fields */ + UT_LIST_BASE_NODE_T(trx_t) trx_serial_list; + /*!< trx->no ordered List of + transactions in either TRX_PREPARED or + TRX_ACTIVE which have already been + assigned a serialization number */ + char pad6[64]; /*!< Ensure trx_serial_list does not + share cache line with other fields */ UT_LIST_BASE_NODE_T(trx_rseg_t) rseg_list; /*!< List of rollback segment objects */ + char pad7[64]; /*!< Ensure list base nodes do not + share cache line with other fields */ trx_rseg_t* latest_rseg; /*!< Latest rollback segment in the round-robin assignment of rollback segments to transactions */ diff --git a/include/trx0sys.ic b/include/trx0sys.ic index af05ab2f5ed..3af98cdf98b 100644 --- a/include/trx0sys.ic +++ b/include/trx0sys.ic @@ -367,28 +367,11 @@ trx_is_active( /*==========*/ trx_id_t trx_id) /*!< in: trx id of the transaction */ { - trx_t* trx; - ut_ad(mutex_own(&(kernel_mutex))); - if (trx_id < trx_list_get_min_trx_id()) { - - return(FALSE); - } - - if (UNIV_UNLIKELY(trx_id >= trx_sys->max_trx_id)) { - - /* There must be corruption: we return TRUE because this - function is only called by lock_clust_rec_some_has_impl() - and row_vers_impl_x_locked_off_kernel() and they have - diagnostic prints in this case */ - - return(TRUE); - } - - trx = trx_get_on_id(trx_id); - if (trx && (trx->conc_state == TRX_ACTIVE - || trx->conc_state == TRX_PREPARED)) { + if (trx_find_descriptor(trx_sys->descriptors, + trx_sys->descr_n_used, + trx_id)) { return(TRUE); } @@ -425,4 +408,27 @@ trx_sys_get_new_trx_id(void) return(id); } + +/*************************************************************//** +Find a slot for a given trx ID in a descriptors array. +@return: slot pointer */ +UNIV_INLINE +trx_id_t* +trx_find_descriptor( +/*================*/ + const trx_id_t* descriptors, /*!< in: descriptors array */ + ulint n_descr, /*!< in: array size */ + trx_id_t trx_id) /*!< in: trx pointer */ +{ + ut_ad(descriptors != trx_sys->descriptors || + mutex_own(&kernel_mutex)); + + if (UNIV_UNLIKELY(n_descr == 0)) { + + return(NULL); + } + + return((trx_id_t *) bsearch(&trx_id, descriptors, n_descr, + sizeof(trx_id_t), trx_descr_cmp)); +} #endif /* !UNIV_HOTBACKUP */ diff --git a/include/trx0trx.h b/include/trx0trx.h index 39b8ccf26ec..fec1d746297 100644 --- a/include/trx0trx.h +++ b/include/trx0trx.h @@ -447,6 +447,23 @@ trx_get_que_state_str( /*==================*/ const trx_t* trx); /*!< in: transaction */ +/*************************************************************//** +Callback function for trx_find_descriptor() to compare trx IDs. */ +UNIV_INTERN +int +trx_descr_cmp( +/*==========*/ + const void *a, /*!< in: pointer to first comparison argument */ + const void *b); /*!< in: pointer to second comparison argument */ + +/*************************************************************//** +Release a slot for a given trx in the global descriptors array. */ +UNIV_INTERN +void +trx_release_descriptor( +/*===================*/ + trx_t* trx); /*!< in: trx pointer */ + /* Signal to a transaction */ struct trx_sig_struct{ unsigned type:3; /*!< signal type */ @@ -477,10 +494,18 @@ struct trx_struct{ const char* op_info; /*!< English text describing the current operation, or an empty string */ - ulint conc_state; /*!< state of the trx from the point - of view of concurrency control: - TRX_ACTIVE, TRX_COMMITTED_IN_MEMORY, - ... */ + ulint state; /*!< state of the trx from the point of + view of concurrency control: TRX_ACTIVE, + TRX_COMMITTED_IN_MEMORY, ... This was + called 'conc_state' in the upstream and + has been renamed in Percona Server, + because changing it's value to/from + either TRX_ACTIVE or TRX_PREPARED + requires calling + trx_reserve_descriptor() / + trx_release_descriptor(). Different name + ensures we notice any new code changing + the state. */ /*------------------------------*/ /* MySQL has a transaction coordinator to coordinate two phase commit between multiple storage engines and the binary log. When @@ -495,6 +520,9 @@ struct trx_struct{ also be set to 1. This is used in the XA code */ unsigned called_commit_ordered:1;/* 1 if innobase_commit_ordered has run. */ + unsigned is_in_trx_serial_list:1; + /* Set when transaction is in the + trx_serial_list */ /*------------------------------*/ ulint isolation_level;/* TRX_ISO_REPEATABLE_READ, ... */ ulint check_foreigns; /* normally TRUE, but if the user @@ -628,6 +656,9 @@ struct trx_struct{ UT_LIST_NODE_T(trx_t) mysql_trx_list; /*!< list of transactions created for MySQL */ + UT_LIST_NODE_T(trx_t) + trx_serial_list;/*!< list node for + trx_sys->trx_serial_list */ /*------------------------------*/ ulint error_state; /*!< 0 if no error, otherwise error number; NOTE That ONLY the thread @@ -686,9 +717,6 @@ struct trx_struct{ UT_LIST_BASE_NODE_T(lock_t) trx_locks; /*!< locks reserved by the transaction */ /*------------------------------*/ - mem_heap_t* global_read_view_heap; - /* memory heap for the global read - view */ read_view_t* global_read_view; /* consistent read view associated to a transaction or NULL */ @@ -698,6 +726,7 @@ struct trx_struct{ associated to a transaction (i.e. same as global_read_view) or read view associated to a cursor */ + read_view_t* prebuilt_view; /* pre-built view array */ /*------------------------------*/ UT_LIST_BASE_NODE_T(trx_named_savept_t) trx_savepoints; /*!< savepoints set with SAVEPOINT ..., diff --git a/include/trx0trx.ic b/include/trx0trx.ic index 4a1d3bcde0b..1a1fc91eac5 100644 --- a/include/trx0trx.ic +++ b/include/trx0trx.ic @@ -31,9 +31,9 @@ trx_start_if_not_started( /*=====================*/ trx_t* trx) /*!< in: transaction */ { - ut_ad(trx->conc_state != TRX_COMMITTED_IN_MEMORY); + ut_ad(trx->state != TRX_COMMITTED_IN_MEMORY); - if (trx->conc_state == TRX_NOT_STARTED) { + if (trx->state == TRX_NOT_STARTED) { trx_start(trx, ULINT_UNDEFINED); } @@ -48,9 +48,9 @@ trx_start_if_not_started_low( /*=========================*/ trx_t* trx) /*!< in: transaction */ { - ut_ad(trx->conc_state != TRX_COMMITTED_IN_MEMORY); + ut_ad(trx->state != TRX_COMMITTED_IN_MEMORY); - if (trx->conc_state == TRX_NOT_STARTED) { + if (trx->state == TRX_NOT_STARTED) { trx_start_low(trx, ULINT_UNDEFINED); } diff --git a/lock/lock0lock.c b/lock/lock0lock.c index 47d082ed49f..f4c991d4fe9 100644 --- a/lock/lock0lock.c +++ b/lock/lock0lock.c @@ -4652,7 +4652,7 @@ lock_print_info_all_transactions( trx = UT_LIST_GET_FIRST(trx_sys->mysql_trx_list); while (trx) { - if (trx->conc_state == TRX_NOT_STARTED) { + if (trx->state == TRX_NOT_STARTED) { fputs("---", file); trx_print(file, trx, 600); } @@ -4820,9 +4820,9 @@ lock_table_queue_validate( lock = UT_LIST_GET_FIRST(table->locks); while (lock) { - ut_a(((lock->trx)->conc_state == TRX_ACTIVE) - || ((lock->trx)->conc_state == TRX_PREPARED) - || ((lock->trx)->conc_state == TRX_COMMITTED_IN_MEMORY)); + ut_a(((lock->trx)->state == TRX_ACTIVE) + || ((lock->trx)->state == TRX_PREPARED) + || ((lock->trx)->state == TRX_COMMITTED_IN_MEMORY)); if (!lock_get_wait(lock)) { @@ -4870,7 +4870,7 @@ lock_rec_queue_validate( lock = lock_rec_get_first(block, heap_no); while (lock) { - switch(lock->trx->conc_state) { + switch(lock->trx->state) { case TRX_ACTIVE: case TRX_PREPARED: case TRX_COMMITTED_IN_MEMORY: @@ -4957,9 +4957,9 @@ lock_rec_queue_validate( lock = lock_rec_get_first(block, heap_no); while (lock) { - ut_a(lock->trx->conc_state == TRX_ACTIVE - || lock->trx->conc_state == TRX_PREPARED - || lock->trx->conc_state == TRX_COMMITTED_IN_MEMORY); + ut_a(lock->trx->state == TRX_ACTIVE + || lock->trx->state == TRX_PREPARED + || lock->trx->state == TRX_COMMITTED_IN_MEMORY); ut_a(trx_in_trx_list(lock->trx)); if (index) { @@ -5036,9 +5036,9 @@ loop: } ut_a(trx_in_trx_list(lock->trx)); - ut_a(lock->trx->conc_state == TRX_ACTIVE - || lock->trx->conc_state == TRX_PREPARED - || lock->trx->conc_state == TRX_COMMITTED_IN_MEMORY); + ut_a(lock->trx->state == TRX_ACTIVE + || lock->trx->state == TRX_PREPARED + || lock->trx->state == TRX_COMMITTED_IN_MEMORY); # ifdef UNIV_SYNC_DEBUG /* Only validate the record queues when this thread is not diff --git a/log/log0log.c b/log/log0log.c index 8fbf4b80df4..298234050e8 100644 --- a/log/log0log.c +++ b/log/log0log.c @@ -263,13 +263,12 @@ log_check_tracking_margin( } /************************************************************//** -Opens the log for log_write_low. The log must be closed with log_close and -released with log_release. +Opens the log for log_write_low. The log must be closed with log_close. @return start lsn of the log record */ UNIV_INTERN ib_uint64_t -log_reserve_and_open( -/*=================*/ +log_open( +/*=====*/ ulint len) /*!< in: length of data to be catenated */ { log_t* log = log_sys; @@ -282,7 +281,6 @@ log_reserve_and_open( ut_a(len < log->buf_size / 2); loop: - mutex_enter(&(log->mutex)); ut_ad(!recv_no_log_write); /* Calculate an upper limit for the space the string may take in the @@ -303,6 +301,8 @@ loop: ut_ad(++count < 50); + mutex_enter(&(log->mutex)); + goto loop; } @@ -316,6 +316,8 @@ loop: os_thread_sleep(10000); + mutex_enter(&(log->mutex)); + goto loop; } @@ -336,6 +338,8 @@ loop: ut_ad(++count < 50); + mutex_enter(&(log->mutex)); + goto loop; } } @@ -492,9 +496,12 @@ log_close(void) if (tracked_lsn_age >= log->log_group_capacity) { - fprintf(stderr, " InnoDB: Error: the age of the " + fprintf(stderr, "InnoDB: Error: the age of the " "oldest untracked record exceeds the log " "group capacity!\n"); + fprintf(stderr, "InnoDB: Error: stopping the log " + "tracking thread at LSN %llu\n", tracked_lsn); + srv_track_changed_pages = FALSE; } } diff --git a/mtr/mtr0mtr.c b/mtr/mtr0mtr.c index d852ed6f496..f0cd3fb77de 100644 --- a/mtr/mtr0mtr.c +++ b/mtr/mtr0mtr.c @@ -37,6 +37,25 @@ Created 11/26/1995 Heikki Tuuri #ifndef UNIV_HOTBACKUP # include "log0recv.h" + +/***************************************************//** +Checks if a mini-transaction is dirtying a clean page. +@return TRUE if the mtr is dirtying a clean page. */ +UNIV_INTERN +ibool +mtr_block_dirtied( +/*==============*/ + const buf_block_t* block) /*!< in: block being x-fixed */ +{ + ut_ad(buf_block_get_state(block) == BUF_BLOCK_FILE_PAGE); + ut_ad(block->page.buf_fix_count > 0); + + /* It is OK to read oldest_modification because no + other thread can be performing a write of it and it + is only during write that the value is reset to 0. */ + return(block->page.oldest_modification == 0); +} + /*****************************************************************//** Releases the item in the slot given. */ static @@ -125,7 +144,7 @@ mtr_memo_slot_note_modification( buf_block_t* block = (buf_block_t*) slot->object; #ifdef UNIV_DEBUG - ut_ad(log_flush_order_mutex_own()); + ut_ad(!mtr->made_dirty || log_flush_order_mutex_own()); #endif /* UNIV_DEBUG */ buf_flush_note_modification(block, mtr); } @@ -201,12 +220,14 @@ mtr_log_reserve_and_write( Add pages to flush list and exit */ goto func_exit; } + } else { + mutex_enter(&log_sys->mutex); } data_size = dyn_array_get_data_size(mlog); /* Open the database log for log_write_low */ - mtr->start_lsn = log_reserve_and_open(data_size); + mtr->start_lsn = log_open(data_size); if (mtr->log_mode == MTR_LOG_ALL) { @@ -225,7 +246,15 @@ mtr_log_reserve_and_write( mtr->end_lsn = log_close(); func_exit: - log_flush_order_mutex_enter(); + + /* No need to acquire log_flush_order_mutex if this mtr has + not dirtied a clean page. log_flush_order_mutex is used to + ensure ordered insertions in the flush_list. We need to + insert in the flush_list iff the page in question was clean + before modifications. */ + if (mtr->made_dirty) { + log_flush_order_mutex_enter(); + } /* It is now safe to release the log mutex because the flush_order mutex will ensure that we are the first one @@ -236,7 +265,9 @@ func_exit: mtr_memo_note_modifications(mtr); } - log_flush_order_mutex_exit(); + if (mtr->made_dirty) { + log_flush_order_mutex_exit(); + } } #endif /* !UNIV_HOTBACKUP */ diff --git a/read/read0read.c b/read/read0read.c index f049dd21e8d..c04dae51ff5 100644 --- a/read/read0read.c +++ b/read/read0read.c @@ -145,14 +145,27 @@ read_view_t* read_view_create_low( /*=================*/ ulint n, /*!< in: number of cells in the trx_ids array */ - mem_heap_t* heap) /*!< in: memory heap from which allocated */ + read_view_t* view) /*!< in: pre-allocated view array or NULL if a + new one needs to be created */ { - read_view_t* view; + if (view == NULL) { + view = ut_malloc(sizeof(read_view_t)); + view->max_descr = 0; + view->descriptors = NULL; + } - view = mem_heap_alloc(heap, sizeof(read_view_t)); + if (UNIV_UNLIKELY(view->max_descr < n)) { - view->n_trx_ids = n; - view->trx_ids = mem_heap_alloc(heap, n * sizeof *view->trx_ids); + /* avoid frequent re-allocations by extending the array to the + desired size + 10% */ + + view->max_descr = n + n / 10; + view->descriptors = ut_realloc(view->descriptors, + view->max_descr * + sizeof(trx_id_t)); + } + + view->n_descr = n; return(view); } @@ -169,8 +182,8 @@ read_view_oldest_copy_or_open_new( /*==============================*/ trx_id_t cr_trx_id, /*!< in: trx_id of creating transaction, or 0 used in purge */ - mem_heap_t* heap) /*!< in: memory heap from which - allocated */ + read_view_t* view) /*!< in: pre-allocated view array or + NULL if a new one needs to be created */ { read_view_t* old_view; read_view_t* view_copy; @@ -185,10 +198,10 @@ read_view_oldest_copy_or_open_new( if (old_view == NULL) { - return(read_view_open_now(cr_trx_id, heap)); + return(read_view_open_now(cr_trx_id, view, TRUE)); } - n = old_view->n_trx_ids; + n = old_view->n_descr; if (old_view->creator_trx_id) { n++; @@ -196,7 +209,7 @@ read_view_oldest_copy_or_open_new( needs_insert = FALSE; } - view_copy = read_view_create_low(n, heap); + view_copy = read_view_create_low(n, view); /* Insert the id of the creator in the right place of the descending array of ids, if needs_insert is TRUE: */ @@ -204,7 +217,7 @@ read_view_oldest_copy_or_open_new( i = 0; while (i < n) { if (needs_insert - && (i >= old_view->n_trx_ids + && (i >= old_view->n_descr || old_view->creator_trx_id > read_view_get_nth_trx_id(old_view, i))) { @@ -251,16 +264,17 @@ read_view_open_now( /*===============*/ trx_id_t cr_trx_id, /*!< in: trx_id of creating transaction, or 0 used in purge */ - mem_heap_t* heap) /*!< in: memory heap from which - allocated */ + read_view_t* view, /*!< in: current read view or NULL if it + doesn't exist yet */ + ibool exclude_self) /*!< in: TRUE, if cr_trx_id should be + excluded from the resulting view */ { - read_view_t* view; - trx_t* trx; - ulint n; + trx_id_t* descr; + ulint i; ut_ad(mutex_own(&kernel_mutex)); - view = read_view_create_low(UT_LIST_GET_LEN(trx_sys->trx_list), heap); + view = read_view_create_low(trx_sys->descr_n_used, view); view->creator_trx_id = cr_trx_id; view->type = VIEW_NORMAL; @@ -271,40 +285,58 @@ read_view_open_now( view->low_limit_no = trx_sys->max_trx_id; view->low_limit_id = view->low_limit_no; - n = 0; - trx = UT_LIST_GET_FIRST(trx_sys->trx_list); + /* No active transaction should be visible */ - /* No active transaction should be visible, except cr_trx */ + descr = trx_find_descriptor(trx_sys->descriptors, + trx_sys->descr_n_used, + cr_trx_id); - while (trx) { - if (trx->id != cr_trx_id - && (trx->conc_state == TRX_ACTIVE - || trx->conc_state == TRX_PREPARED)) { + if (UNIV_LIKELY(exclude_self && descr != NULL)) { - read_view_set_nth_trx_id(view, n, trx->id); + ut_ad(trx_sys->descr_n_used > 0); + ut_ad(view->n_descr > 0); - n++; + view->n_descr--; - /* NOTE that a transaction whose trx number is < - trx_sys->max_trx_id can still be active, if it is - in the middle of its commit! Note that when a - transaction starts, we initialize trx->no to - IB_ULONGLONG_MAX. */ - - if (view->low_limit_no > trx->no) { - - view->low_limit_no = trx->no; - } - } - - trx = UT_LIST_GET_NEXT(trx_list, trx); + i = descr - trx_sys->descriptors; + } else { + i = trx_sys->descr_n_used; } - view->n_trx_ids = n; + if (UNIV_LIKELY(i > 0)) { - if (n > 0) { + /* Copy the [0; i-1] range */ + memcpy(view->descriptors, trx_sys->descriptors, + i * sizeof(trx_id_t)); + } + + if (UNIV_UNLIKELY(i + 1 < trx_sys->descr_n_used)) { + + /* Copy the [i+1; descr_n_used-1] range */ + memcpy(view->descriptors + i, + trx_sys->descriptors + i + 1, + (trx_sys->descr_n_used - i - 1) * + sizeof(trx_id_t)); + } + + /* NOTE that a transaction whose trx number is < trx_sys->max_trx_id can + still be active, if it is in the middle of its commit! Note that when a + transaction starts, we initialize trx->no to IB_ULONGLONG_MAX. */ + + if (UT_LIST_GET_LEN(trx_sys->trx_serial_list) > 0) { + + trx_id_t trx_no; + + trx_no = UT_LIST_GET_FIRST(trx_sys->trx_serial_list)->no; + + if (trx_no < view->low_limit_no) { + view->low_limit_no = trx_no; + } + } + + if (UNIV_LIKELY(view->n_descr > 0)) { /* The last active transaction has the smallest id: */ - view->up_limit_id = read_view_get_nth_trx_id(view, n - 1); + view->up_limit_id = view->descriptors[0]; } else { view->up_limit_id = view->low_limit_id; } @@ -328,6 +360,23 @@ read_view_close( UT_LIST_REMOVE(view_list, trx_sys->view_list, view); } +/*********************************************************************//** +Frees resource allocated by a read view. */ +UNIV_INTERN +void +read_view_free( +/*===========*/ + read_view_t* view) /*< in: read view */ +{ + ut_ad(mutex_own(&kernel_mutex)); + + if (view->descriptors != NULL) { + ut_free(view->descriptors); + } + + ut_free(view); +} + /*********************************************************************//** Closes a consistent read view for MySQL. This function is called at an SQL statement end if the trx isolation level is <= TRX_ISO_READ_COMMITTED. */ @@ -343,8 +392,6 @@ read_view_close_for_mysql( read_view_close(trx->global_read_view); - mem_heap_empty(trx->global_read_view_heap); - trx->read_view = NULL; trx->global_read_view = NULL; @@ -382,7 +429,7 @@ read_view_print( fprintf(file, "Read view individually stored trx ids:\n"); - n_ids = view->n_trx_ids; + n_ids = view->n_descr; for (i = 0; i < n_ids; i++) { fprintf(file, "Read view trx id " TRX_ID_FMT "\n", @@ -404,8 +451,6 @@ read_cursor_view_create_for_mysql( cursor_view_t* curview; read_view_t* view; mem_heap_t* heap; - trx_t* trx; - ulint n; ut_a(cr_trx); @@ -424,61 +469,14 @@ read_cursor_view_create_for_mysql( mutex_enter(&kernel_mutex); - curview->read_view = read_view_create_low( - UT_LIST_GET_LEN(trx_sys->trx_list), curview->heap); - - view = curview->read_view; - view->creator_trx_id = cr_trx->id; - view->type = VIEW_HIGH_GRANULARITY; - view->undo_no = cr_trx->undo_no; - - /* No future transactions should be visible in the view */ - - view->low_limit_no = trx_sys->max_trx_id; - view->low_limit_id = view->low_limit_no; - - n = 0; - trx = UT_LIST_GET_FIRST(trx_sys->trx_list); - - /* No active transaction should be visible */ - - while (trx) { - - if (trx->conc_state == TRX_ACTIVE - || trx->conc_state == TRX_PREPARED) { - - read_view_set_nth_trx_id(view, n, trx->id); - - n++; - - /* NOTE that a transaction whose trx number is < - trx_sys->max_trx_id can still be active, if it is - in the middle of its commit! Note that when a - transaction starts, we initialize trx->no to - IB_ULONGLONG_MAX. */ - - if (view->low_limit_no > trx->no) { - - view->low_limit_no = trx->no; - } - } - - trx = UT_LIST_GET_NEXT(trx_list, trx); - } - - view->n_trx_ids = n; - - if (n > 0) { - /* The last active transaction has the smallest id: */ - view->up_limit_id = read_view_get_nth_trx_id(view, n - 1); - } else { - view->up_limit_id = view->low_limit_id; - } - - UT_LIST_ADD_FIRST(view_list, trx_sys->view_list, view); + curview->read_view = read_view_open_now(cr_trx->id, NULL, FALSE); mutex_exit(&kernel_mutex); + view = curview->read_view; + view->type = VIEW_HIGH_GRANULARITY; + view->undo_no = cr_trx->undo_no; + return(curview); } @@ -503,6 +501,8 @@ read_cursor_view_close_for_mysql( mutex_enter(&kernel_mutex); read_view_close(curview->read_view); + read_view_free(curview->read_view); + trx->read_view = trx->global_read_view; mutex_exit(&kernel_mutex); diff --git a/row/row0ins.c b/row/row0ins.c index fda0c55b5c7..0002f4410d6 100644 --- a/row/row0ins.c +++ b/row/row0ins.c @@ -1346,11 +1346,11 @@ run_again: const rec_t* rec = btr_pcur_get_rec(&pcur); const buf_block_t* block = btr_pcur_get_block(&pcur); - if (srv_pass_corrupt_table && !block) { + SRV_CORRUPT_TABLE_CHECK(block, + { err = DB_CORRUPTION; - break; - } - ut_a(block); + goto exit_loop; + }); if (page_rec_is_infimum(rec)) { @@ -1474,6 +1474,7 @@ run_again: } } while (btr_pcur_move_to_next(&pcur, &mtr)); +exit_loop: if (check_ref) { row_ins_foreign_report_add_err( trx, foreign, btr_pcur_get_rec(&pcur), entry); diff --git a/row/row0merge.c b/row/row0merge.c index 460a44e34b2..ade708f93e7 100644 --- a/row/row0merge.c +++ b/row/row0merge.c @@ -1298,11 +1298,11 @@ row_merge_read_clustered_index( if (UNIV_LIKELY(has_next)) { rec = btr_pcur_get_rec(&pcur); - if (srv_pass_corrupt_table && !rec) { + SRV_CORRUPT_TABLE_CHECK(rec, + { err = DB_CORRUPTION; goto err_exit; - } - ut_a(rec); + }); offsets = rec_get_offsets(rec, clust_index, NULL, ULINT_UNDEFINED, &row_heap); diff --git a/row/row0sel.c b/row/row0sel.c index eb60aaa2314..f5b2c0fd014 100644 --- a/row/row0sel.c +++ b/row/row0sel.c @@ -3813,9 +3813,9 @@ release_search_latch_if_needed: trx->has_search_latch = FALSE; } - ut_ad(prebuilt->sql_stat_start || trx->conc_state == TRX_ACTIVE); - ut_ad(trx->conc_state == TRX_NOT_STARTED - || trx->conc_state == TRX_ACTIVE); + ut_ad(prebuilt->sql_stat_start || trx->state == TRX_ACTIVE); + ut_ad(trx->state == TRX_NOT_STARTED + || trx->state == TRX_ACTIVE); ut_ad(prebuilt->sql_stat_start || prebuilt->select_lock_type != LOCK_NONE || trx->read_view); @@ -3997,11 +3997,11 @@ rec_loop: rec = btr_pcur_get_rec(pcur); - if (srv_pass_corrupt_table && !rec) { + SRV_CORRUPT_TABLE_CHECK(rec, + { err = DB_CORRUPTION; goto lock_wait_or_error; - } - ut_a(rec); + }); ut_ad(!!page_rec_is_comp(rec) == comp); #ifdef UNIV_SEARCH_DEBUG @@ -4138,8 +4138,9 @@ wrong_offs: offsets = rec_get_offsets(rec, index, offsets, ULINT_UNDEFINED, &heap); - if (UNIV_UNLIKELY(srv_force_recovery > 0) - || (srv_pass_corrupt_table == 2 && index->table->is_corrupt)) { + if (UNIV_UNLIKELY(srv_force_recovery > 0 + || (index->table->is_corrupt && + srv_pass_corrupt_table == 2))) { if (!rec_validate(rec, offsets) || !btr_index_rec_validate(rec, index, FALSE)) { fprintf(stderr, @@ -4896,8 +4897,10 @@ row_search_check_if_query_cache_permitted( if (trx->isolation_level >= TRX_ISO_REPEATABLE_READ && !trx->read_view) { - trx->read_view = read_view_open_now( - trx->id, trx->global_read_view_heap); + trx->read_view = + read_view_open_now(trx->id, + NULL, TRUE); + trx->global_read_view = trx->read_view; } } diff --git a/row/row0vers.c b/row/row0vers.c index 6d83dbaf8ee..3fd13b829a2 100644 --- a/row/row0vers.c +++ b/row/row0vers.c @@ -667,9 +667,9 @@ row_vers_build_for_semi_consistent_read( mutex_enter(&kernel_mutex); version_trx = trx_get_on_id(version_trx_id); - if (version_trx - && (version_trx->conc_state == TRX_COMMITTED_IN_MEMORY - || version_trx->conc_state == TRX_NOT_STARTED)) { + if (version_trx && + (version_trx->state == TRX_COMMITTED_IN_MEMORY + || version_trx->state == TRX_NOT_STARTED)) { version_trx = NULL; } diff --git a/srv/srv0srv.c b/srv/srv0srv.c index adcc0aa1cc2..9c8abc5dac1 100644 --- a/srv/srv0srv.c +++ b/srv/srv0srv.c @@ -430,8 +430,6 @@ UNIV_INTERN ulint srv_expand_import = 0; /* 0:disable 1:enable */ UNIV_INTERN ulint srv_pass_corrupt_table = 0; /* 0:disable 1:enable */ UNIV_INTERN ulint srv_dict_size_limit = 0; - -UNIV_INTERN ulint srv_lazy_drop_table = 0; /*-------------------------------------------*/ UNIV_INTERN ulong srv_n_spin_wait_rounds = 30; UNIV_INTERN ulong srv_n_free_tickets_to_enter = 500; @@ -2925,7 +2923,7 @@ rescan_idle: mutex_enter(&kernel_mutex); trx = UT_LIST_GET_FIRST(trx_sys->mysql_trx_list); while (trx) { - if (trx->conc_state == TRX_ACTIVE + if (trx->state == TRX_ACTIVE && trx->mysql_thd && innobase_thd_is_idle(trx->mysql_thd)) { ib_int64_t start_time = innobase_thd_get_start_time(trx->mysql_thd); diff --git a/trx/trx0purge.c b/trx/trx0purge.c index b048dc66efe..1e119c6828b 100644 --- a/trx/trx0purge.c +++ b/trx/trx0purge.c @@ -263,8 +263,9 @@ trx_purge_sys_create( purge_sys->query = trx_purge_graph_build(); - purge_sys->view = read_view_oldest_copy_or_open_new(0, - purge_sys->heap); + purge_sys->prebuilt_view = + read_view_oldest_copy_or_open_new(0, NULL); + purge_sys->view = purge_sys->prebuilt_view; } /************************************************************************ @@ -279,7 +280,12 @@ trx_purge_sys_close(void) que_graph_free(purge_sys->query); ut_a(purge_sys->sess->trx->is_purge); - purge_sys->sess->trx->conc_state = TRX_NOT_STARTED; + purge_sys->sess->trx->state = TRX_NOT_STARTED; + + mutex_enter(&kernel_mutex); + trx_release_descriptor(purge_sys->sess->trx); + mutex_exit(&kernel_mutex); + sess_close(purge_sys->sess); purge_sys->sess = NULL; @@ -289,6 +295,8 @@ trx_purge_sys_close(void) mutex_enter(&kernel_mutex); read_view_close(purge_sys->view); + read_view_free(purge_sys->prebuilt_view); + purge_sys->prebuilt_view = NULL; purge_sys->view = NULL; mutex_exit(&kernel_mutex); @@ -1177,7 +1185,7 @@ trx_purge( } purge_sys->view = read_view_oldest_copy_or_open_new( - 0, purge_sys->heap); + 0, purge_sys->prebuilt_view); mutex_exit(&kernel_mutex); diff --git a/trx/trx0roll.c b/trx/trx0roll.c index b55471959ce..ae42623a1d9 100644 --- a/trx/trx0roll.c +++ b/trx/trx0roll.c @@ -132,7 +132,7 @@ trx_rollback_for_mysql( { int err; - if (trx->conc_state == TRX_NOT_STARTED) { + if (trx->state == TRX_NOT_STARTED) { return(DB_SUCCESS); } @@ -161,7 +161,7 @@ trx_rollback_last_sql_stat_for_mysql( { int err; - if (trx->conc_state == TRX_NOT_STARTED) { + if (trx->state == TRX_NOT_STARTED) { return(DB_SUCCESS); } @@ -263,7 +263,7 @@ trx_rollback_to_savepoint_for_mysql( return(DB_NO_SAVEPOINT); } - if (trx->conc_state == TRX_NOT_STARTED) { + if (trx->state == TRX_NOT_STARTED) { ut_print_timestamp(stderr); fputs(" InnoDB: Error: transaction has a savepoint ", stderr); ut_print_name(stderr, trx, FALSE, savep->name); @@ -560,7 +560,7 @@ loop: continue; } - switch (trx->conc_state) { + switch (trx->state) { case TRX_NOT_STARTED: case TRX_PREPARED: continue; diff --git a/trx/trx0sys.c b/trx/trx0sys.c index 978748642bf..5f589b70343 100644 --- a/trx/trx0sys.c +++ b/trx/trx0sys.c @@ -1319,6 +1319,12 @@ trx_sys_init_at_db_start(void) trx_sys = mem_zalloc(sizeof(*trx_sys)); + /* Allocate the trx descriptors array */ + trx_sys->descriptors = ut_malloc(sizeof(trx_id_t) * + TRX_DESCR_ARRAY_INITIAL_SIZE); + trx_sys->descr_n_max = TRX_DESCR_ARRAY_INITIAL_SIZE; + trx_sys->descr_n_used = 0; + sys_header = trx_sysf_get(&mtr); trx_rseg_list_and_array_init(sys_header, ib_bh, &mtr); @@ -1346,7 +1352,7 @@ trx_sys_init_at_db_start(void) for (;;) { - if (trx->conc_state != TRX_PREPARED) { + if (trx->state != TRX_PREPARED) { rows_to_undo += trx->undo_no; } @@ -2028,6 +2034,9 @@ trx_sys_close(void) ut_a(UT_LIST_GET_LEN(trx_sys->view_list) == 0); ut_a(UT_LIST_GET_LEN(trx_sys->mysql_trx_list) == 0); + ut_ad(trx_sys->descr_n_used == 0); + ut_free(trx_sys->descriptors); + mem_free(trx_sys); trx_sys = NULL; diff --git a/trx/trx0trx.c b/trx/trx0trx.c index c5e26f8d7d1..f061bb4c0b6 100644 --- a/trx/trx0trx.c +++ b/trx/trx0trx.c @@ -85,6 +85,126 @@ trx_set_detailed_error_from_file( sizeof(trx->detailed_error)); } +/*************************************************************//** +Callback function for trx_find_descriptor() to compare trx IDs. */ +UNIV_INTERN +int +trx_descr_cmp( +/*==========*/ + const void *a, /*!< in: pointer to first comparison argument */ + const void *b) /*!< in: pointer to second comparison argument */ +{ + const trx_id_t* da = (const trx_id_t*) a; + const trx_id_t* db = (const trx_id_t*) b; + + if (*da < *db) { + return -1; + } else if (*da > *db) { + return 1; + } + + return 0; +} + +/*************************************************************//** +Reserve a slot for a given trx in the global descriptors array. */ +UNIV_INLINE +void +trx_reserve_descriptor( +/*===================*/ + const trx_t* trx) /*!< in: trx pointer */ +{ + ulint n_used; + ulint n_max; + trx_id_t* descr; + + ut_ad(mutex_own(&kernel_mutex)); + ut_ad(!trx_find_descriptor(trx_sys->descriptors, + trx_sys->descr_n_used, + trx->id)); + + n_used = trx_sys->descr_n_used + 1; + n_max = trx_sys->descr_n_max; + + if (UNIV_UNLIKELY(n_used > n_max)) { + + n_max = n_max * 2; + + trx_sys->descriptors = + ut_realloc(trx_sys->descriptors, + n_max * sizeof(trx_id_t)); + + trx_sys->descr_n_max = n_max; + } + + descr = trx_sys->descriptors + n_used - 1; + + if (UNIV_UNLIKELY(n_used > 1 && trx->id < descr[-1])) { + + /* Find the slot where it should be inserted. We could use a + binary search, but in reality linear search should be faster, + because the slot we are looking for is near the array end. */ + + trx_id_t* tdescr; + + for (tdescr = descr - 1; + tdescr >= trx_sys->descriptors && *tdescr > trx->id; + tdescr--) { + } + + tdescr++; + + ut_memmove(tdescr + 1, tdescr, (descr - tdescr) * + sizeof(trx_id_t)); + + descr = tdescr; + } + + *descr = trx->id; + + trx_sys->descr_n_used = n_used; +} + +/*************************************************************//** +Release a slot for a given trx in the global descriptors array. */ +UNIV_INTERN +void +trx_release_descriptor( +/*===================*/ + trx_t* trx) /*!< in: trx pointer */ +{ + ulint size; + trx_id_t* descr; + + ut_ad(mutex_own(&kernel_mutex)); + + if (UNIV_LIKELY(trx->is_in_trx_serial_list)) { + + UT_LIST_REMOVE(trx_serial_list, trx_sys->trx_serial_list, + trx); + trx->is_in_trx_serial_list = 0; + } + + descr = trx_find_descriptor(trx_sys->descriptors, + trx_sys->descr_n_used, + trx->id); + + if (UNIV_UNLIKELY(descr == NULL)) { + + return; + } + + size = (trx_sys->descriptors + trx_sys->descr_n_used - 1 - descr) * + sizeof(trx_id_t); + + if (UNIV_LIKELY(size > 0)) { + + ut_memmove(descr, descr + 1, size); + } + + trx_sys->descr_n_used--; +} + /****************************************************************//** Creates and initializes a transaction object. @return own: the transaction */ @@ -107,7 +227,7 @@ trx_create( trx->is_purge = 0; trx->is_recovered = 0; - trx->conc_state = TRX_NOT_STARTED; + trx->state = TRX_NOT_STARTED; trx->is_registered = 0; trx->owns_prepare_mutex = 0; @@ -119,6 +239,7 @@ trx_create( trx->id = 0; trx->no = IB_ULONGLONG_MAX; + trx->is_in_trx_serial_list = 0; trx->support_xa = TRUE; @@ -190,9 +311,9 @@ trx_create( trx->declared_to_be_inside_innodb = FALSE; trx->n_tickets_to_enter_innodb = 0; - trx->global_read_view_heap = mem_heap_create(256); trx->global_read_view = NULL; trx->read_view = NULL; + trx->prebuilt_view = NULL; trx->io_reads = 0; trx->io_read = 0; @@ -328,7 +449,7 @@ trx_free( trx->magic_n = 11112222; - ut_a(trx->conc_state == TRX_NOT_STARTED); + ut_a(trx->state == TRX_NOT_STARTED); mutex_free(&(trx->undo_mutex)); @@ -355,18 +476,18 @@ trx_free( ut_a(UT_LIST_GET_LEN(trx->trx_locks) == 0); - if (trx->global_read_view_heap) { - mem_heap_free(trx->global_read_view_heap); + if (trx->prebuilt_view != NULL) { + read_view_free(trx->prebuilt_view); } - trx->global_read_view = NULL; - ut_a(trx->read_view == NULL); ut_a(ib_vector_is_empty(trx->autoinc_locks)); /* We allocated a dedicated heap for the vector. */ ib_vector_free(trx->autoinc_locks); + trx_release_descriptor(trx); + mem_free(trx); } @@ -379,7 +500,7 @@ trx_free_prepared( trx_t* trx) /*!< in, own: trx object */ { ut_ad(mutex_own(&kernel_mutex)); - ut_a(trx->conc_state == TRX_PREPARED); + ut_a(trx->state == TRX_PREPARED); ut_a(trx->magic_n == TRX_MAGIC_N); /* Prepared transactions are sort of active; they allow @@ -412,15 +533,19 @@ trx_free_prepared( mem_heap_free(trx->lock_heap); } - if (trx->global_read_view_heap) { - mem_heap_free(trx->global_read_view_heap); - } - ut_a(ib_vector_is_empty(trx->autoinc_locks)); ib_vector_free(trx->autoinc_locks); + trx_release_descriptor(trx); + + if (trx->prebuilt_view != NULL) { + read_view_free(trx->prebuilt_view); + } + UT_LIST_REMOVE(trx_list, trx_sys->trx_list, trx); + ut_ad(trx_sys->descr_n_used <= UT_LIST_GET_LEN(trx_sys->trx_list)); + mem_free(trx); } @@ -529,6 +654,7 @@ trx_lists_init_at_db_start(void) ut_ad(mutex_own(&kernel_mutex)); UT_LIST_INIT(trx_sys->trx_list); + UT_LIST_INIT(trx_sys->trx_serial_list); /* Look from the rollback segments if there exist undo logs for transactions */ @@ -565,7 +691,7 @@ trx_lists_init_at_db_start(void) if (srv_force_recovery == 0) { - trx->conc_state = TRX_PREPARED; + trx->state = TRX_PREPARED; trx_n_prepared++; } else { fprintf(stderr, @@ -575,11 +701,12 @@ trx_lists_init_at_db_start(void) " rollback it" " anyway.\n"); - trx->conc_state = TRX_ACTIVE; + trx->state = TRX_ACTIVE; } + + trx_reserve_descriptor(trx); } else { - trx->conc_state - = TRX_COMMITTED_IN_MEMORY; + trx->state = TRX_COMMITTED_IN_MEMORY; } /* We give a dummy value for the trx no; @@ -591,12 +718,15 @@ trx_lists_init_at_db_start(void) trx->no = trx->id; } else { - trx->conc_state = TRX_ACTIVE; + trx->state = TRX_ACTIVE; /* A running transaction always has the number field inited to IB_ULONGLONG_MAX */ trx->no = IB_ULONGLONG_MAX; + + trx_reserve_descriptor(trx); + } if (undo->dict_operation) { @@ -641,7 +771,7 @@ trx_lists_init_at_db_start(void) if (srv_force_recovery == 0) { - trx->conc_state + trx->state = TRX_PREPARED; trx_n_prepared++; } else { @@ -652,11 +782,12 @@ trx_lists_init_at_db_start(void) " rollback it" " anyway.\n"); - trx->conc_state - = TRX_ACTIVE; + trx->state = TRX_ACTIVE; + trx_reserve_descriptor( + trx); } } else { - trx->conc_state + trx->state = TRX_COMMITTED_IN_MEMORY; } @@ -665,13 +796,14 @@ trx_lists_init_at_db_start(void) trx->no = trx->id; } else { - trx->conc_state = TRX_ACTIVE; - + trx->state = TRX_ACTIVE; /* A running transaction always has the number field inited to IB_ULONGLONG_MAX */ trx->no = IB_ULONGLONG_MAX; + + trx_reserve_descriptor(trx); } trx->rseg = rseg; @@ -742,13 +874,15 @@ trx_start_low( if (trx->is_purge) { trx->id = 0; - trx->conc_state = TRX_ACTIVE; + /* Don't reserve a descriptor, since this trx is not added to + trx_list. */ + trx->state = TRX_ACTIVE; trx->start_time = time(NULL); return(TRUE); } - ut_ad(trx->conc_state != TRX_ACTIVE); + ut_ad(trx->state != TRX_ACTIVE); ut_a(rseg_id == ULINT_UNDEFINED); @@ -763,7 +897,10 @@ trx_start_low( trx->rseg = rseg; - trx->conc_state = TRX_ACTIVE; + trx->state = TRX_ACTIVE; + + trx_reserve_descriptor(trx); + trx->start_time = time(NULL); UT_LIST_ADD_FIRST(trx_list, trx_sys->trx_list, trx); @@ -820,6 +957,14 @@ trx_serialisation_number_get( trx->no = trx_sys_get_new_trx_id(); + if (UNIV_LIKELY(trx->is_in_trx_serial_list == 0)) { + + UT_LIST_ADD_LAST(trx_serial_list, trx_sys->trx_serial_list, + trx); + + trx->is_in_trx_serial_list = 1; + } + /* If the rollack segment is not empty then the new trx_t::no can't be less than any trx_t::no already in the rollback segment. User threads only @@ -1001,10 +1146,10 @@ trx_commit_off_kernel( lsn = 0; } - ut_ad(trx->conc_state == TRX_ACTIVE || trx->conc_state == TRX_PREPARED); + ut_ad(trx->state == TRX_ACTIVE || trx->state == TRX_PREPARED); ut_ad(mutex_own(&kernel_mutex)); - if (UNIV_UNLIKELY(trx->conc_state == TRX_PREPARED)) { + if (UNIV_UNLIKELY(trx->state == TRX_PREPARED)) { ut_a(trx_n_prepared > 0); trx_n_prepared--; } @@ -1024,7 +1169,9 @@ trx_commit_off_kernel( committed. */ /*--------------------------------------*/ - trx->conc_state = TRX_COMMITTED_IN_MEMORY; + trx->state = TRX_COMMITTED_IN_MEMORY; + /* The following also removes trx from trx_serial_list */ + trx_release_descriptor(trx); /*--------------------------------------*/ /* If we release kernel_mutex below and we are still doing @@ -1045,7 +1192,6 @@ trx_commit_off_kernel( if (trx->global_read_view) { read_view_close(trx->global_read_view); - mem_heap_empty(trx->global_read_view_heap); trx->global_read_view = NULL; } @@ -1131,7 +1277,7 @@ trx_commit_off_kernel( /* Free all savepoints */ trx_roll_free_all_savepoints(trx); - trx->conc_state = TRX_NOT_STARTED; + trx->state = TRX_NOT_STARTED; trx->rseg = NULL; trx->undo_no = 0; trx->last_sql_stat_start.least_undo_no = 0; @@ -1141,6 +1287,8 @@ trx_commit_off_kernel( UT_LIST_REMOVE(trx_list, trx_sys->trx_list, trx); + ut_ad(trx_sys->descr_n_used <= UT_LIST_GET_LEN(trx_sys->trx_list)); + trx->error_state = DB_SUCCESS; } @@ -1159,12 +1307,15 @@ trx_cleanup_at_db_startup( trx_undo_insert_cleanup(trx); } - trx->conc_state = TRX_NOT_STARTED; + trx->state = TRX_NOT_STARTED; + trx_release_descriptor(trx); trx->rseg = NULL; trx->undo_no = 0; trx->last_sql_stat_start.least_undo_no = 0; UT_LIST_REMOVE(trx_list, trx_sys->trx_list, trx); + + ut_ad(trx_sys->descr_n_used <= UT_LIST_GET_LEN(trx_sys->trx_list)); } /********************************************************************//** @@ -1178,7 +1329,7 @@ trx_assign_read_view( /*=================*/ trx_t* trx) /*!< in: active transaction */ { - ut_ad(trx->conc_state == TRX_ACTIVE); + ut_ad(trx->state == TRX_ACTIVE); if (trx->read_view) { return(trx->read_view); @@ -1186,11 +1337,9 @@ trx_assign_read_view( mutex_enter(&kernel_mutex); - if (!trx->read_view) { - trx->read_view = read_view_open_now( - trx->id, trx->global_read_view_heap); - trx->global_read_view = trx->read_view; - } + trx->read_view = read_view_open_now(trx->id, trx->prebuilt_view, TRUE); + trx->prebuilt_view = trx->read_view; + trx->global_read_view = trx->read_view; mutex_exit(&kernel_mutex); @@ -1555,7 +1704,7 @@ loop: return; } - if (trx->conc_state == TRX_NOT_STARTED) { + if (trx->state == TRX_NOT_STARTED) { trx_start_low(trx, ULINT_UNDEFINED); } @@ -1847,7 +1996,7 @@ trx_mark_sql_stat_end( { ut_a(trx); - if (trx->conc_state == TRX_NOT_STARTED) { + if (trx->state == TRX_NOT_STARTED) { trx->undo_no = 0; } @@ -1870,7 +2019,7 @@ trx_print( fprintf(f, "TRANSACTION " TRX_ID_FMT, (ullint) trx->id); - switch (trx->conc_state) { + switch (trx->state) { case TRX_NOT_STARTED: fputs(", not started", f); break; @@ -1886,7 +2035,7 @@ trx_print( fputs(", COMMITTED IN MEMORY", f); break; default: - fprintf(f, " state %lu", (ulong) trx->conc_state); + fprintf(f, " state %lu", (ulong) trx->state); } if (*trx->op_info) { @@ -2081,7 +2230,11 @@ trx_prepare_off_kernel( ut_ad(mutex_own(&kernel_mutex)); /*--------------------------------------*/ - trx->conc_state = TRX_PREPARED; + if (UNIV_UNLIKELY(trx->state != TRX_ACTIVE)) { + + trx_reserve_descriptor(trx); + } + trx->state = TRX_PREPARED; trx_n_prepared++; /*--------------------------------------*/ @@ -2195,7 +2348,7 @@ trx_recover_for_mysql( trx = UT_LIST_GET_FIRST(trx_sys->trx_list); while (trx) { - if (trx->conc_state == TRX_PREPARED) { + if (trx->state == TRX_PREPARED) { xid_list[count] = trx->xid; if (count == 0) { @@ -2268,7 +2421,7 @@ trx_get_trx_by_xid( the same */ if (trx->is_recovered - && trx->conc_state == TRX_PREPARED + && trx->state == TRX_PREPARED && xid->gtrid_length == trx->xid.gtrid_length && xid->bqual_length == trx->xid.bqual_length && memcmp(xid->data, trx->xid.data, From e013bf9f0e2ffd05de5bfe95c4102e61b08ac06a Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Wed, 8 May 2013 13:36:17 +0400 Subject: [PATCH 134/172] The bug MDEV-4489 "Replication of big5, cp932, gbk, sjis strings makes wrong values on slave" has been fixed. Problem: String constants of some Asian charsets (big5,cp932,gbk,sjis) can have backslash '\' (0x5C) in the second byte of multi-byte characters. Replicating of such constants using the standard '\'-escaping is dangerous. Therefore, constants of these charsets are replicated using hex notation: INSERT INTO t1 (a) VALUES (0x815C); However, 0xHHHH constants do not work well in some cases, because they can behave as strings and as numbers, depending on context (for example, depending on the data type of the column in an INSERT statement). This SQL script was not replicated correctly with statement-based replication: SET NAMES gbk; PREPARE STMT FROM 'INSERT INTO t1 (a) VALUES (?)'; SET @a = '1'; EXECUTE STMT USING @a; The INSERT statement was replicated as: INSERT INTO t1 (a) VALUES (0x31); '1' was correctly converted to the number 1 on master. But the 0x31 constant was treated as number 49 on slave. Fix: 1. Binary log now uses X'HHHH' instead of 0xHHHH constants. 2. The X'HHHH' constants now work always as strings, in all contexts. This is the SQL standard compliant behaviour. After the fix, the above statement is replicated as: INSERT INTO t1 (a) VALUES (X'31'); X'31' is treated as string '1' on slave, and is correctly converted to 1. modified: @ mysql-test/r/ctype_cp932_binlog_stm.result @ mysql-test/r/select.result @ mysql-test/r/select_jcl6.result @ mysql-test/r/select_pkeycache.result @ mysql-test/r/user_var-binlog.result @ mysql-test/r/varbinary.result @ mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result @ mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result @ mysql-test/suite/rpl/r/rpl_charset_sjis.result @ mysql-test/suite/rpl/r/rpl_mdev382.result @ mysql-test/suite/rpl/t/rpl_charset_sjis.test @ mysql-test/t/ctype_cp932_binlog_stm.test @ mysql-test/t/select.test @ mysql-test/t/varbinary.test Adding and updating tests @ sql/item.cc @ sql/item.h @ sql/sql_yacc.yy @ sql/sql_lex.cc Splitting the implementations of X'HH' and 0xHH constants into two separate classes. Fixing the parser to distinguish the two syntaxes. @ sql/log_event.cc Using X'HH' instead of 0xHH for binary logging for string constants of the "dangerous" charsets. @ sql/sql_string.h Adding a helped method String::append_hex(). --- mysql-test/r/ctype_cp932_binlog_stm.result | 37 +++++- mysql-test/r/select.result | 4 +- mysql-test/r/select_jcl6.result | 4 +- mysql-test/r/select_pkeycache.result | 4 +- mysql-test/r/user_var-binlog.result | 12 +- mysql-test/r/varbinary.result | 61 +++++++++- .../binlog/r/binlog_stm_ctype_ucs.result | 4 +- .../r/binlog_stm_mix_innodb_myisam.result | 4 +- .../suite/rpl/r/rpl_charset_sjis.result | 32 +++++ mysql-test/suite/rpl/r/rpl_mdev382.result | 4 +- mysql-test/suite/rpl/t/rpl_charset_sjis.test | 33 +++++ mysql-test/t/ctype_cp932_binlog_stm.test | 17 +++ mysql-test/t/select.test | 2 +- mysql-test/t/varbinary.test | 27 ++++- sql/item.cc | 52 +++----- sql/item.h | 114 +++++++++++++++--- sql/log_event.cc | 15 ++- sql/sql_lex.cc | 2 +- sql/sql_string.h | 10 ++ sql/sql_yacc.yy | 27 ++++- 20 files changed, 376 insertions(+), 89 deletions(-) diff --git a/mysql-test/r/ctype_cp932_binlog_stm.result b/mysql-test/r/ctype_cp932_binlog_stm.result index 1e62787835f..deca926a69c 100644 --- a/mysql-test/r/ctype_cp932_binlog_stm.result +++ b/mysql-test/r/ctype_cp932_binlog_stm.result @@ -10,7 +10,7 @@ show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # use `test`; CREATE TABLE t1(f1 blob) master-bin.000001 # Query # # BEGIN -master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES(0x8300) +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES(X'8300') master-bin.000001 # Query # # COMMIT SELECT HEX(f1) FROM t1; HEX(f1) @@ -44,7 +44,7 @@ BEGIN INSERT INTO t4 VALUES (ins1, ins2, ind); END master-bin.000001 # Query # # BEGIN -master-bin.000001 # Query # # use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172 COLLATE 'latin1_swedish_ci'), NAME_CONST('ins2',_cp932 0xED40ED41ED42 COLLATE 'cp932_japanese_ci'), NAME_CONST('ind',47.93)) +master-bin.000001 # Query # # use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 X'466F6F2773206120426172' COLLATE 'latin1_swedish_ci'), NAME_CONST('ins2',_cp932 X'ED40ED41ED42' COLLATE 'cp932_japanese_ci'), NAME_CONST('ind',47.93)) master-bin.000001 # Query # # COMMIT master-bin.000001 # Query # # use `test`; DROP PROCEDURE bug18293 master-bin.000001 # Query # # use `test`; DROP TABLE `t4` /* generated by server */ @@ -19491,5 +19491,38 @@ EFBFA4 FA55 EFBFA5 818F DROP TABLE t1; # +# Bug#MDEV-4489 Replication of big5, cp932, gbk, sjis strings makes wrong values on slave +# +SET NAMES cp932; +CREATE TABLE t1 (a INT); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +INSERT INTO t1 VALUES (0x31); +INSERT INTO t1 VALUES (X'31'); +PREPARE stmt FROM 'INSERT INTO t1 (a) VALUES (?)'; +SET @a='1'; +SELECT charset(@a); +charset(@a) +cp932 +EXECUTE stmt USING @a; +DROP PREPARE stmt; +DROP TABLE t1; +show binlog events from ; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT) +master-bin.000001 # Query # # BEGIN +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (0x31) +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Query # # BEGIN +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (X'31') +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Query # # BEGIN +master-bin.000001 # Query # # use `test`; INSERT INTO t1 (a) VALUES (X'31') +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +# # End of 5.5 tests # diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result index 38a991990be..c086a62275a 100644 --- a/mysql-test/r/select.result +++ b/mysql-test/r/select.result @@ -2921,8 +2921,8 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join) DROP TABLE t1,t2; -select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0; -x'10' + 0 X'10' + 0 b'10' + 0 B'10' + 0 +select x'3136' + 0, X'3136' + 0, b'10' + 0, B'10' + 0; +x'3136' + 0 X'3136' + 0 b'10' + 0 B'10' + 0 16 16 2 2 create table t1 (f1 varchar(6) default NULL, f2 int(6) primary key not null); create table t2 (f3 varchar(5) not null, f4 varchar(5) not null, UNIQUE KEY UKEY (f3,f4)); diff --git a/mysql-test/r/select_jcl6.result b/mysql-test/r/select_jcl6.result index 8fa4f27b4b8..00b356fc1c0 100644 --- a/mysql-test/r/select_jcl6.result +++ b/mysql-test/r/select_jcl6.result @@ -2932,8 +2932,8 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where 1 SIMPLE t1 hash_ALL NULL #hash#$hj 5 test.t2.a 5 Using where; Using join buffer (flat, BNLH join) DROP TABLE t1,t2; -select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0; -x'10' + 0 X'10' + 0 b'10' + 0 B'10' + 0 +select x'3136' + 0, X'3136' + 0, b'10' + 0, B'10' + 0; +x'3136' + 0 X'3136' + 0 b'10' + 0 B'10' + 0 16 16 2 2 create table t1 (f1 varchar(6) default NULL, f2 int(6) primary key not null); create table t2 (f3 varchar(5) not null, f4 varchar(5) not null, UNIQUE KEY UKEY (f3,f4)); diff --git a/mysql-test/r/select_pkeycache.result b/mysql-test/r/select_pkeycache.result index 38a991990be..c086a62275a 100644 --- a/mysql-test/r/select_pkeycache.result +++ b/mysql-test/r/select_pkeycache.result @@ -2921,8 +2921,8 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join) DROP TABLE t1,t2; -select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0; -x'10' + 0 X'10' + 0 b'10' + 0 B'10' + 0 +select x'3136' + 0, X'3136' + 0, b'10' + 0, B'10' + 0; +x'3136' + 0 X'3136' + 0 b'10' + 0 B'10' + 0 16 16 2 2 create table t1 (f1 varchar(6) default NULL, f2 int(6) primary key not null); create table t2 (f3 varchar(5) not null, f4 varchar(5) not null, UNIQUE KEY UKEY (f3,f4)); diff --git a/mysql-test/r/user_var-binlog.result b/mysql-test/r/user_var-binlog.result index ae4bd68a435..8aae1bca4f6 100644 --- a/mysql-test/r/user_var-binlog.result +++ b/mysql-test/r/user_var-binlog.result @@ -9,12 +9,12 @@ insert into t1 values (@var1),(@var2); show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # BEGIN -master-bin.000001 # User var # # @`a b`=_latin1 0x68656C6C6F COLLATE latin1_swedish_ci +master-bin.000001 # User var # # @`a b`=_latin1 X'68656C6C6F' COLLATE latin1_swedish_ci master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES(@`a b`) master-bin.000001 # Query # # COMMIT master-bin.000001 # Query # # BEGIN -master-bin.000001 # User var # # @`var1`=_latin1 0x273B616161 COLLATE latin1_swedish_ci -master-bin.000001 # User var # # @`var2`=_binary 0x61 COLLATE binary +master-bin.000001 # User var # # @`var1`=_latin1 X'273B616161' COLLATE latin1_swedish_ci +master-bin.000001 # User var # # @`var2`=_binary X'61' COLLATE binary master-bin.000001 # Query # # use `test`; insert into t1 values (@var1),(@var2) master-bin.000001 # Query # # COMMIT flush logs; @@ -34,7 +34,7 @@ SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; BEGIN /*!*/; -SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`/*!*/; +SET @`a b`:=_latin1 X'68656C6C6F' COLLATE `latin1_swedish_ci`/*!*/; use `test`/*!*/; SET TIMESTAMP=10000/*!*/; INSERT INTO t1 VALUES(@`a b`) @@ -45,8 +45,8 @@ COMMIT SET TIMESTAMP=10000/*!*/; BEGIN /*!*/; -SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`/*!*/; -SET @`var2`:=_binary 0x61 COLLATE `binary`/*!*/; +SET @`var1`:=_latin1 X'273B616161' COLLATE `latin1_swedish_ci`/*!*/; +SET @`var2`:=_binary X'61' COLLATE `binary`/*!*/; SET TIMESTAMP=10000/*!*/; insert into t1 values (@var1),(@var2) /*!*/; diff --git a/mysql-test/r/varbinary.result b/mysql-test/r/varbinary.result index 065abbb9c00..689db16b5d4 100644 --- a/mysql-test/r/varbinary.result +++ b/mysql-test/r/varbinary.result @@ -5,9 +5,62 @@ A 65 9223372036854775807 18446744073709551615 select 0x31+1,concat(0x31)+1,-0xf; 0x31+1 concat(0x31)+1 -0xf 50 2 -15 -select x'31',X'ffff'+0; -x'31' X'ffff'+0 +select x'31',0xffff+0; +x'31' 0xffff+0 1 65535 +select X'FFFF'+0; +X'FFFF'+0 +0 +Warnings: +Warning 1292 Truncated incorrect DOUBLE value: '\xFF\xFF' +SELECT x'31'+0, 0x31+0; +x'31'+0 0x31+0 +1 49 +SELECT x'31'+0.1e0, 0x31+0.1e0; +x'31'+0.1e0 0x31+0.1e0 +1.1 49.1 +SELECT x'312E39'+0e0, 0x312E39+0e0; +x'312E39'+0e0 0x312E39+0e0 +1.9 3223097 +SELECT CAST(x'31' AS SIGNED), CAST(0x31 AS SIGNED); +CAST(x'31' AS SIGNED) CAST(0x31 AS SIGNED) +1 49 +SELECT CAST(x'31' AS DECIMAL(10,1)), CAST(0x31 AS DECIMAL(10,1)); +CAST(x'31' AS DECIMAL(10,1)) CAST(0x31 AS DECIMAL(10,1)) +1.0 49.0 +SELECT CAST(x'312E39' AS SIGNED), CAST(0x312E39 AS SIGNED); +CAST(x'312E39' AS SIGNED) CAST(0x312E39 AS SIGNED) +1 3223097 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '1.9' +SELECT CAST(x'312E39' AS DECIMAL(10,1)), CAST(0x312E39 AS DECIMAL(10,1)); +CAST(x'312E39' AS DECIMAL(10,1)) CAST(0x312E39 AS DECIMAL(10,1)) +1.9 3223097.0 +EXPLAIN EXTENDED SELECT X'FFFF', 0xFFFF; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used +Warnings: +Note 1003 select X'ffff' AS `X'FFFF'`,0xffff AS `0xFFFF` +CREATE TABLE t1 (a int); +INSERT INTO t1 VALUES (X'31'),(0x31); +INSERT INTO t1 VALUES (X'312E39'),(0x312E39); +SELECT * FROM t1; +a +1 +49 +2 +3223097 +DROP TABLE t1; +CREATE TABLE t1 (a DECIMAL(10,1)); +INSERT INTO t1 VALUES (X'31'),(0x31); +INSERT INTO t1 VALUES (X'312E39'),(0x312E39); +SELECT * FROM t1; +a +1.0 +49.0 +1.9 +3223097.0 +DROP TABLE t1; create table t1 (ID int(8) unsigned zerofill not null auto_increment,UNIQ bigint(21) unsigned zerofill not null,primary key (ID),unique (UNIQ) ); insert into t1 set UNIQ=0x38afba1d73e6a18a; insert into t1 set UNIQ=123; @@ -104,8 +157,8 @@ A select b'01000001'; b'01000001' A -select x'41', 0+x'41'; -x'41' 0+x'41' +select x'41', 0+x'3635'; +x'41' 0+x'3635' A 65 select N'abc', length(N'abc'); abc length(N'abc') diff --git a/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result b/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result index 3a5c3ac4b02..fba725bb80e 100644 --- a/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result +++ b/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result @@ -6,7 +6,7 @@ insert into t2 values (@v); show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # BEGIN -master-bin.000001 # User var # # @`v`=_ucs2 0x006100620063 COLLATE ucs2_general_ci +master-bin.000001 # User var # # @`v`=_ucs2 X'006100620063' COLLATE ucs2_general_ci master-bin.000001 # Query # # use `test`; insert into t2 values (@v) master-bin.000001 # Query # # COMMIT flush logs; @@ -26,7 +26,7 @@ SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; BEGIN /*!*/; -SET @`v`:=_ucs2 0x006100620063 COLLATE `ucs2_general_ci`/*!*/; +SET @`v`:=_ucs2 X'006100620063' COLLATE `ucs2_general_ci`/*!*/; use `test`/*!*/; SET TIMESTAMP=10000/*!*/; insert into t2 values (@v) diff --git a/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result b/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result index 978b045d599..c10aa7abd05 100644 --- a/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result +++ b/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result @@ -946,10 +946,10 @@ show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Query # # BEGIN master-bin.000001 # Intvar # # INSERT_ID=10 -master-bin.000001 # User var # # @`b`=_latin1 0x3135 COLLATE latin1_swedish_ci +master-bin.000001 # User var # # @`b`=_latin1 X'3135' COLLATE latin1_swedish_ci master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=# master-bin.000001 # Intvar # # INSERT_ID=10 -master-bin.000001 # User var # # @`b`=_latin1 0x3135 COLLATE latin1_swedish_ci +master-bin.000001 # User var # # @`b`=_latin1 X'3135' COLLATE latin1_swedish_ci master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE `t4` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`a`, @`b`) SET `b`= @b + bug27417(2) ;file_id=# master-bin.000001 # Query # # ROLLBACK drop trigger trg_del_t2; diff --git a/mysql-test/suite/rpl/r/rpl_charset_sjis.result b/mysql-test/suite/rpl/r/rpl_charset_sjis.result index b31bad28a59..ff6296987f8 100644 --- a/mysql-test/suite/rpl/r/rpl_charset_sjis.result +++ b/mysql-test/suite/rpl/r/rpl_charset_sjis.result @@ -20,4 +20,36 @@ hex(a) 965C drop table t1; drop procedure p1; +# +# Start of 5.5 tests +# +# +# Bug#MDEV-4489 Replication of big5, cp932, gbk, sjis strings makes wrong values on slave +# +--- on master --- +SET NAMES sjis; +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (0x31),(X'31'),('1'); +PREPARE stmt FROM 'INSERT INTO t1 (a) VALUES (?)'; +SET @a='1'; +EXECUTE stmt USING @a; +DROP PREPARE stmt; +SELECT * FROM t1; +a +49 +1 +1 +1 +--- on slave --- +SELECT * FROM t1; +a +49 +1 +1 +1 +--- on master --- +DROP TABLE t1; +# +# End of 5.5 tests +# include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_mdev382.result b/mysql-test/suite/rpl/r/rpl_mdev382.result index f904561b722..e2b7d084a3f 100644 --- a/mysql-test/suite/rpl/r/rpl_mdev382.result +++ b/mysql-test/suite/rpl/r/rpl_mdev382.result @@ -245,7 +245,7 @@ master-bin.000001 # User var # # @`a``3`=9223372036854775807 master-bin.000001 # User var # # @`a``4`=18446744073709551615 master-bin.000001 # User var # # @`b```=-1.234560123456789e125 master-bin.000001 # User var # # @```c`=-1234501234567890123456789012345678901234567890123456789.0123456789 -master-bin.000001 # User var # # @```d```=_latin1 0x78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878 COLLATE latin1_swedish_ci +master-bin.000001 # User var # # @```d```=_latin1 X'78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878' COLLATE latin1_swedish_ci master-bin.000001 # Query # # use `db1``; select 'oops!'`; INSERT INTO t1 VALUES (@`a``1`+1, @`a``2`*100, @`a``3`-1, @`a``4`-1, @`b```/2, @```c`, substr(@```d```, 2, 98)) master-bin.000001 # Query # # COMMIT /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; @@ -283,7 +283,7 @@ SET @`a``3`:=9223372036854775807/*!*/; SET @`a``4`:=18446744073709551615/*!*/; SET @`b```:=-1.2345601234568e+125/*!*/; SET @```c`:=-1234501234567890123456789012345678901234567890123456789.0123456789/*!*/; -SET @```d```:=_latin1 0x78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878 COLLATE `latin1_swedish_ci`/*!*/; +SET @```d```:=_latin1 X'78787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878' COLLATE `latin1_swedish_ci`/*!*/; SET TIMESTAMP=1000000000/*!*/; INSERT INTO t1 VALUES (@`a``1`+1, @`a``2`*100, @`a``3`-1, @`a``4`-1, @`b```/2, @```c`, substr(@```d```, 2, 98)) /*!*/; diff --git a/mysql-test/suite/rpl/t/rpl_charset_sjis.test b/mysql-test/suite/rpl/t/rpl_charset_sjis.test index a3a3de8c1d0..7d3d21cf9a0 100644 --- a/mysql-test/suite/rpl/t/rpl_charset_sjis.test +++ b/mysql-test/suite/rpl/t/rpl_charset_sjis.test @@ -23,4 +23,37 @@ sync_slave_with_master; connection master; # End of 5.0 tests + +--echo # +--echo # Start of 5.5 tests +--echo # + +--echo # +--echo # Bug#MDEV-4489 Replication of big5, cp932, gbk, sjis strings makes wrong values on slave +--echo # + +connection master; +--echo --- on master --- +SET NAMES sjis; +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (0x31),(X'31'),('1'); +PREPARE stmt FROM 'INSERT INTO t1 (a) VALUES (?)'; +SET @a='1'; +EXECUTE stmt USING @a; +DROP PREPARE stmt; +SELECT * FROM t1; +sync_slave_with_master; +connection slave; +--echo --- on slave --- +SELECT * FROM t1; +connection master; +--echo --- on master --- +DROP TABLE t1; +sync_slave_with_master; +connection master; + +--echo # +--echo # End of 5.5 tests +--echo # + --source include/rpl_end.inc diff --git a/mysql-test/t/ctype_cp932_binlog_stm.test b/mysql-test/t/ctype_cp932_binlog_stm.test index 6140178c0f4..e7b6fe1a014 100644 --- a/mysql-test/t/ctype_cp932_binlog_stm.test +++ b/mysql-test/t/ctype_cp932_binlog_stm.test @@ -141,6 +141,23 @@ SELECT HEX(a), HEX(CONVERT(a using cp932)) as b FROM t1 HAVING b<>'3F' ORDER BY DROP TABLE t1; +--echo # +--echo # Bug#MDEV-4489 Replication of big5, cp932, gbk, sjis strings makes wrong values on slave +--echo # +let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1); +SET NAMES cp932; +CREATE TABLE t1 (a INT); +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES (0x31); +INSERT INTO t1 VALUES (X'31'); +PREPARE stmt FROM 'INSERT INTO t1 (a) VALUES (?)'; +SET @a='1'; +SELECT charset(@a); +EXECUTE stmt USING @a; +DROP PREPARE stmt; +DROP TABLE t1; +--source include/show_binlog_events.inc + --echo # --echo # End of 5.5 tests diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test index b036cc6bc01..6a82a2901c5 100644 --- a/mysql-test/t/select.test +++ b/mysql-test/t/select.test @@ -2493,7 +2493,7 @@ DROP TABLE t1,t2; # Bug #10650 # -select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0; +select x'3136' + 0, X'3136' + 0, b'10' + 0, B'10' + 0; # # Bug #11398 Bug in field_conv() results in wrong result of join with index diff --git a/mysql-test/t/varbinary.test b/mysql-test/t/varbinary.test index 1f9f7b5412d..f03f3fcf703 100644 --- a/mysql-test/t/varbinary.test +++ b/mysql-test/t/varbinary.test @@ -13,7 +13,30 @@ drop table if exists t1; select 0x41,0x41+0,0x41 | 0x7fffffffffffffff | 0,0xffffffffffffffff | 0 ; select 0x31+1,concat(0x31)+1,-0xf; -select x'31',X'ffff'+0; +select x'31',0xffff+0; +select X'FFFF'+0; + +# +# Hex string vs hex hybrid +# +SELECT x'31'+0, 0x31+0; +SELECT x'31'+0.1e0, 0x31+0.1e0; +SELECT x'312E39'+0e0, 0x312E39+0e0; +SELECT CAST(x'31' AS SIGNED), CAST(0x31 AS SIGNED); +SELECT CAST(x'31' AS DECIMAL(10,1)), CAST(0x31 AS DECIMAL(10,1)); +SELECT CAST(x'312E39' AS SIGNED), CAST(0x312E39 AS SIGNED); +SELECT CAST(x'312E39' AS DECIMAL(10,1)), CAST(0x312E39 AS DECIMAL(10,1)); +EXPLAIN EXTENDED SELECT X'FFFF', 0xFFFF; +CREATE TABLE t1 (a int); +INSERT INTO t1 VALUES (X'31'),(0x31); +INSERT INTO t1 VALUES (X'312E39'),(0x312E39); +SELECT * FROM t1; +DROP TABLE t1; +CREATE TABLE t1 (a DECIMAL(10,1)); +INSERT INTO t1 VALUES (X'31'),(0x31); +INSERT INTO t1 VALUES (X'312E39'),(0x312E39); +SELECT * FROM t1; +DROP TABLE t1; # # Test of hex constants in WHERE: @@ -115,7 +138,7 @@ select 0x41; select b'01000001'; -select x'41', 0+x'41'; +select x'41', 0+x'3635'; select N'abc', length(N'abc'); diff --git a/sql/item.cc b/sql/item.cc index 14a505256b8..c251e3d6df3 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -6125,17 +6125,8 @@ inline uint char_val(char X) X-'a'+10); } -Item_hex_string::Item_hex_string() -{ - hex_string_init("", 0); -} -Item_hex_string::Item_hex_string(const char *str, uint str_length) -{ - hex_string_init(str, str_length); -} - -void Item_hex_string::hex_string_init(const char *str, uint str_length) +void Item_hex_constant::hex_string_init(const char *str, uint str_length) { max_length=(str_length+1)/2; char *ptr=(char*) sql_alloc(max_length+1); @@ -6159,7 +6150,7 @@ void Item_hex_string::hex_string_init(const char *str, uint str_length) unsigned_flag= 1; } -longlong Item_hex_string::val_int() +longlong Item_hex_hybrid::val_int() { // following assert is redundant, because fixed=1 assigned in constructor DBUG_ASSERT(fixed == 1); @@ -6173,17 +6164,7 @@ longlong Item_hex_string::val_int() } -my_decimal *Item_hex_string::val_decimal(my_decimal *decimal_value) -{ - // following assert is redundant, because fixed=1 assigned in constructor - DBUG_ASSERT(fixed == 1); - ulonglong value= (ulonglong)val_int(); - int2my_decimal(E_DEC_FATAL_ERROR, value, TRUE, decimal_value); - return (decimal_value); -} - - -int Item_hex_string::save_in_field(Field *field, bool no_conversions) +int Item_hex_hybrid::save_in_field(Field *field, bool no_conversions) { field->set_notnull(); if (field->result_type() == STRING_RESULT) @@ -6216,22 +6197,27 @@ warn: } -void Item_hex_string::print(String *str, enum_query_type query_type) +void Item_hex_hybrid::print(String *str, enum_query_type query_type) { - char *end= (char*) str_value.ptr() + str_value.length(), - *ptr= end - min(str_value.length(), sizeof(longlong)); + uint32 len= min(str_value.length(), sizeof(longlong)); + const char *ptr= str_value.ptr() + str_value.length() - len; str->append("0x"); - for (; ptr != end ; ptr++) - { - str->append(_dig_vec_lower[((uchar) *ptr) >> 4]); - str->append(_dig_vec_lower[((uchar) *ptr) & 0x0F]); - } + str->append_hex(ptr, len); } -bool Item_hex_string::eq(const Item *arg, bool binary_cmp) const +void Item_hex_string::print(String *str, enum_query_type query_type) { - if (arg->basic_const_item() && arg->type() == type()) + str->append("X'"); + str->append_hex(str_value.ptr(), str_value.length()); + str->append("'"); +} + + +bool Item_hex_constant::eq(const Item *arg, bool binary_cmp) const +{ + if (arg->basic_const_item() && arg->type() == type() && + arg->cast_to_int_type() == cast_to_int_type()) { if (binary_cmp) return !stringcmp(&str_value, &arg->str_value); @@ -6241,7 +6227,7 @@ bool Item_hex_string::eq(const Item *arg, bool binary_cmp) const } -Item *Item_hex_string::safe_charset_converter(CHARSET_INFO *tocs) +Item *Item_hex_constant::safe_charset_converter(CHARSET_INFO *tocs) { Item_string *conv; String tmp, *str= val_str(&tmp); diff --git a/sql/item.h b/sql/item.h index 66e3afa1de9..891a1500eb1 100644 --- a/sql/item.h +++ b/sql/item.h @@ -2730,36 +2730,112 @@ public: }; -class Item_hex_string: public Item_basic_constant +/** + Item_hex_constant -- a common class for hex literals: X'HHHH' and 0xHHHH +*/ +class Item_hex_constant: public Item_basic_constant { +private: + void hex_string_init(const char *str, uint str_length); public: - Item_hex_string(); - Item_hex_string(const char *str,uint str_length); - enum Type type() const { return VARBIN_ITEM; } - double val_real() - { - DBUG_ASSERT(fixed == 1); - return (double) (ulonglong) Item_hex_string::val_int(); + Item_hex_constant() + { + hex_string_init("", 0); } - longlong val_int(); - bool basic_const_item() const { return 1; } - String *val_str(String*) { DBUG_ASSERT(fixed == 1); return &str_value; } - my_decimal *val_decimal(my_decimal *); - int save_in_field(Field *field, bool no_conversions); + Item_hex_constant(const char *str, uint str_length) + { + hex_string_init(str, str_length); + } + enum Type type() const { return VARBIN_ITEM; } enum Item_result result_type () const { return STRING_RESULT; } - enum Item_result cast_to_int_type() const { return INT_RESULT; } enum_field_types field_type() const { return MYSQL_TYPE_VARCHAR; } - virtual void print(String *str, enum_query_type query_type); - bool eq(const Item *item, bool binary_cmp) const; virtual Item *safe_charset_converter(CHARSET_INFO *tocs); bool check_partition_func_processor(uchar *int_arg) {return FALSE;} bool check_vcol_func_processor(uchar *arg) { return FALSE;} -private: - void hex_string_init(const char *str, uint str_length); + bool basic_const_item() const { return 1; } + bool eq(const Item *item, bool binary_cmp) const; + String *val_str(String*) { DBUG_ASSERT(fixed == 1); return &str_value; } }; -class Item_bin_string: public Item_hex_string +/** + Item_hex_hybrid -- is a class implementing 0xHHHH literals, e.g.: + SELECT 0x3132; + They can behave as numbers and as strings depending on context. +*/ +class Item_hex_hybrid: public Item_hex_constant +{ +public: + Item_hex_hybrid(): Item_hex_constant() {} + Item_hex_hybrid(const char *str, uint str_length): + Item_hex_constant(str, str_length) {} + double val_real() + { + DBUG_ASSERT(fixed == 1); + return (double) (ulonglong) Item_hex_hybrid::val_int(); + } + longlong val_int(); + my_decimal *val_decimal(my_decimal *decimal_value) + { + // following assert is redundant, because fixed=1 assigned in constructor + DBUG_ASSERT(fixed == 1); + ulonglong value= (ulonglong) Item_hex_hybrid::val_int(); + int2my_decimal(E_DEC_FATAL_ERROR, value, TRUE, decimal_value); + return decimal_value; + } + int save_in_field(Field *field, bool no_conversions); + enum Item_result cast_to_int_type() const { return INT_RESULT; } + void print(String *str, enum_query_type query_type); +}; + + +/** + Item_hex_string -- is a class implementing X'HHHH' literals, e.g.: + SELECT X'3132'; + Unlike Item_hex_hybrid, X'HHHH' literals behave as strings in all contexts. + X'HHHH' are also used in replication of string constants in case of + "dangerous" charsets (sjis, cp932, big5, gbk) who can have backslash (0x5C) + as the second byte of a multi-byte character, so using '\' escaping for + these charsets is not desirable. +*/ +class Item_hex_string: public Item_hex_constant +{ +public: + Item_hex_string(): Item_hex_constant() {} + Item_hex_string(const char *str, uint str_length): + Item_hex_constant(str, str_length) {} + longlong val_int() + { + DBUG_ASSERT(fixed == 1); + return longlong_from_string_with_check(str_value.charset(), + str_value.ptr(), + str_value.ptr()+ + str_value.length()); + } + double val_real() + { + DBUG_ASSERT(fixed == 1); + return double_from_string_with_check(str_value.charset(), + str_value.ptr(), + str_value.ptr() + + str_value.length()); + } + my_decimal *val_decimal(my_decimal *decimal_value) + { + return val_decimal_from_string(decimal_value); + } + int save_in_field(Field *field, bool no_conversions) + { + field->set_notnull(); + return field->store(str_value.ptr(), str_value.length(), + collation.collation); + } + enum Item_result cast_to_int_type() const { return STRING_RESULT; } + void print(String *str, enum_query_type query_type); +}; + + +class Item_bin_string: public Item_hex_hybrid { public: Item_bin_string(const char *str,uint str_length); diff --git a/sql/log_event.cc b/sql/log_event.cc index f3cf3623d47..1c326863cc5 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -622,16 +622,18 @@ static inline int read_str(const char **buf, const char *buf_end, /** - Transforms a string into "" or its expression in 0x... form. + Transforms a string into "" or its expression in X'HHHH' form. */ char *str_to_hex(char *to, const char *from, uint len) { if (len) { - *to++= '0'; - *to++= 'x'; + *to++= 'X'; + *to++= '\''; to= octet2hex(to, from, len); + *to++= '\''; + *to= '\0'; } else to= strmov(to, "\"\""); @@ -652,7 +654,7 @@ append_query_string(THD *thd, CHARSET_INFO *csinfo, { char *beg, *ptr; uint32 const orig_len= to->length(); - if (to->reserve(orig_len + from->length()*2+3)) + if (to->reserve(orig_len + from->length() * 2 + 4)) return 1; beg= (char*) to->ptr() + to->length(); @@ -6295,7 +6297,7 @@ void User_var_log_event::pack_info(THD *thd, Protocol* protocol) buf.append(" ")) return; old_len= buf.length(); - if (buf.reserve(old_len + val_len*2 + 2 + sizeof(" COLLATE ") + + if (buf.reserve(old_len + val_len * 2 + 3 + sizeof(" COLLATE ") + MY_CS_NAME_SIZE)) return; beg= const_cast(buf.ptr()) + old_len; @@ -6563,7 +6565,8 @@ void User_var_log_event::print(FILE* file, PRINT_EVENT_INFO* print_event_info) char *hex_str; CHARSET_INFO *cs; - hex_str= (char *)my_malloc(2*val_len+1+2,MYF(MY_WME)); // 2 hex digits / byte + // 2 hex digits / byte + hex_str= (char *) my_malloc(2 * val_len + 1 + 3, MYF(MY_WME)); if (!hex_str) return; str_to_hex(hex_str, val, val_len); diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 583aee6bc00..fdf53f7b521 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -1411,7 +1411,7 @@ int lex_one_token(void *arg, void *yythd) yylval->lex_str=get_token(lip, 2, // skip x' length-3); // don't count x' and last ' - return (HEX_NUM); + return HEX_STRING; case MY_LEX_BIN_NUMBER: // Found b'bin-string' lip->yySkip(); // Accept opening ' diff --git a/sql/sql_string.h b/sql/sql_string.h index 8b09d449c2b..7a2f27da998 100644 --- a/sql/sql_string.h +++ b/sql/sql_string.h @@ -364,6 +364,16 @@ public: } return 0; } + bool append_hex(const char *src, uint32 srclen) + { + for (const char *end= src + srclen ; src != end ; src++) + { + if (append(_dig_vec_lower[((uchar) *src) >> 4]) || + append(_dig_vec_lower[((uchar) *src) & 0x0F])) + return true; + } + return false; + } bool fill(uint32 max_length,char fill); void strip_sp(); friend int sortcmp(const String *a,const String *b, CHARSET_INFO *cs); diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index c89585ec609..c621c61aff3 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -1021,6 +1021,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); %token HAVING /* SQL-2003-R */ %token HELP_SYM %token HEX_NUM +%token HEX_STRING %token HIGH_PRIORITY %token HOST_SYM %token HOSTS_SYM @@ -1448,7 +1449,8 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); %left INTERVAL_SYM %type - IDENT IDENT_QUOTED TEXT_STRING DECIMAL_NUM FLOAT_NUM NUM LONG_NUM HEX_NUM + IDENT IDENT_QUOTED TEXT_STRING DECIMAL_NUM FLOAT_NUM NUM LONG_NUM + HEX_NUM HEX_STRING hex_num_or_string LEX_HOSTNAME ULONGLONG_NUM field_ident select_alias ident ident_or_text IDENT_sys TEXT_STRING_sys TEXT_STRING_literal NCHAR_STRING opt_component key_cache_name @@ -5996,6 +5998,11 @@ now_or_signed_literal: { $$=$1; } ; +hex_num_or_string: + HEX_NUM {} + | HEX_STRING {} + ; + charset: CHAR_SYM SET {} | CHARSET {} @@ -12261,7 +12268,7 @@ text_string: } | HEX_NUM { - Item *tmp= new (YYTHD->mem_root) Item_hex_string($1.str, $1.length); + Item *tmp= new (YYTHD->mem_root) Item_hex_hybrid($1.str, $1.length); if (tmp == NULL) MYSQL_YYABORT; /* @@ -12271,6 +12278,14 @@ text_string: tmp->quick_fix_field(); $$= tmp->val_str((String*) 0); } + | HEX_STRING + { + Item *tmp= new (YYTHD->mem_root) Item_hex_string($1.str, $1.length); + if (tmp == NULL) + MYSQL_YYABORT; + tmp->quick_fix_field(); + $$= tmp->val_str((String*) 0); + } | BIN_NUM { Item *tmp= new (YYTHD->mem_root) Item_bin_string($1.str, $1.length); @@ -12339,6 +12354,12 @@ literal: MYSQL_YYABORT; } | HEX_NUM + { + $$ = new (YYTHD->mem_root) Item_hex_hybrid($1.str, $1.length); + if ($$ == NULL) + MYSQL_YYABORT; + } + | HEX_STRING { $$ = new (YYTHD->mem_root) Item_hex_string($1.str, $1.length); if ($$ == NULL) @@ -12350,7 +12371,7 @@ literal: if ($$ == NULL) MYSQL_YYABORT; } - | UNDERSCORE_CHARSET HEX_NUM + | UNDERSCORE_CHARSET hex_num_or_string { Item *tmp= new (YYTHD->mem_root) Item_hex_string($2.str, $2.length); if (tmp == NULL) From 4a0f2563d3d1747a4704e6241380071efbeb3882 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 8 May 2013 14:32:32 +0200 Subject: [PATCH 135/172] MDEV-4462 mysqld gets SIGFPE when mysql.user table is empty avoid divison by zero --- mysql-test/r/empty_user_table.result | 8 ++++++++ mysql-test/t/empty_user_table.test | 18 ++++++++++++++++++ sql/sql_acl.cc | 6 ++++++ 3 files changed, 32 insertions(+) create mode 100644 mysql-test/r/empty_user_table.result create mode 100644 mysql-test/t/empty_user_table.test diff --git a/mysql-test/r/empty_user_table.result b/mysql-test/r/empty_user_table.result new file mode 100644 index 00000000000..df9d803e5c0 --- /dev/null +++ b/mysql-test/r/empty_user_table.result @@ -0,0 +1,8 @@ +create table t1 as select * from mysql.user; +truncate table mysql.user; +flush privileges; +connect(localhost,u1,,test,MASTER_PORT,MASTER_SOCKET); +ERROR 28000: Access denied for user 'u1'@'localhost' (using password: NO) +insert mysql.user select * from t1; +drop table t1; +flush privileges; diff --git a/mysql-test/t/empty_user_table.test b/mysql-test/t/empty_user_table.test new file mode 100644 index 00000000000..7e672cc64f6 --- /dev/null +++ b/mysql-test/t/empty_user_table.test @@ -0,0 +1,18 @@ +# +# MDEV-4462 mysqld gets SIGFPE when mysql.user table is empty +# + +source include/not_embedded.inc; + +create table t1 as select * from mysql.user; +truncate table mysql.user; +flush privileges; + +--replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT +--error ER_ACCESS_DENIED_ERROR +connect (fail,localhost,u1); + +insert mysql.user select * from t1; +drop table t1; +flush privileges; + diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 29922aa5321..9983c52abb5 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -7367,6 +7367,12 @@ static bool find_mpvio_user(MPVIO_EXT *mpvio, Security_context *sctx) cs->coll->hash_sort(cs, (uchar*) sctx->user, strlen(sctx->user), &nr1, &nr2); pthread_mutex_lock(&acl_cache->lock); + if (!acl_users.elements) + { + pthread_mutex_unlock(&acl_cache->lock); + login_failed_error(mpvio->thd); + return 1; + } uint i= nr1 % acl_users.elements; ACL_USER *acl_user_tmp= dynamic_element(&acl_users, i, ACL_USER*); mpvio->acl_user= acl_user_tmp->copy(mpvio->thd->mem_root); From f33178b99a0b88eb513b95ac4b74ca3d3f1d70b7 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Wed, 8 May 2013 20:37:17 +0200 Subject: [PATCH 136/172] MDEV-4206 : log all slow statements (do not use filters), if log_slow_filter is empty. --- mysql-test/r/log_slow.result | 13 +++++++++++++ mysql-test/t/log_slow.test | 13 ++++++++++++- sql/sql_parse.cc | 3 ++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/log_slow.result b/mysql-test/r/log_slow.result index 75e92e7a0b5..318dfa7568d 100644 --- a/mysql-test/r/log_slow.result +++ b/mysql-test/r/log_slow.result @@ -56,5 +56,18 @@ insert_id int(11) NO NULL server_id int(10) unsigned NO NULL sql_text mediumtext NO NULL flush slow logs; +set long_query_time=0.1; +set log_slow_filter=''; +set global slow_query_log=1; +set global log_output='TABLE'; +select sleep(0.5); +sleep(0.5) +0 +select count(*) FROM mysql.slow_log; +count(*) +1 +truncate mysql.slow_log; +set @@long_query_time=default; +set global slow_query_log=default; set @@log_slow_filter=default; set @@log_slow_verbosity=default; diff --git a/mysql-test/t/log_slow.test b/mysql-test/t/log_slow.test index af8a948d318..54f56e1bdfc 100644 --- a/mysql-test/t/log_slow.test +++ b/mysql-test/t/log_slow.test @@ -42,7 +42,18 @@ show fields from mysql.slow_log; flush slow logs; -# Reset used variables +# MDEV-4206 (empty filter should be no filter) +set long_query_time=0.1; +set log_slow_filter=''; +set global slow_query_log=1; +set global log_output='TABLE'; +select sleep(0.5); +select count(*) FROM mysql.slow_log; +truncate mysql.slow_log; + +# Reset used variables +set @@long_query_time=default; +set global slow_query_log=default; set @@log_slow_filter=default; set @@log_slow_verbosity=default; diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 989f1ed66de..05957197817 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1497,7 +1497,8 @@ void log_slow_statement(THD *thd) /* Follow the slow log filter configuration. */ if (!thd->enable_slow_log || - !(thd->variables.log_slow_filter & thd->query_plan_flags)) + (thd->variables.log_slow_filter + && !(thd->variables.log_slow_filter & thd->query_plan_flags))) DBUG_VOID_RETURN; if (((thd->server_status & SERVER_QUERY_WAS_SLOW) || From 55b3c844921580be362c16d3226c287a2f92ea96 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Thu, 9 May 2013 22:21:07 +0200 Subject: [PATCH 137/172] Small mysql_install_db.exe fixes - Use lc-messages-dir instead of deprecated --language when running mysqld in bootstrap mode. - Add some verbosity to mysql_install_db.exe when it runs in course of MSI installation. --- sql/mysql_install_db.cc | 14 ++++++++++---- win/packaging/extra.wxs.in | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/sql/mysql_install_db.cc b/sql/mysql_install_db.cc index 5d523abb8ae..9c1a234241f 100644 --- a/sql/mysql_install_db.cc +++ b/sql/mysql_install_db.cc @@ -54,6 +54,7 @@ static char *opt_os_password; static my_bool opt_default_user; static my_bool opt_allow_remote_root_access; static my_bool opt_skip_networking; +static my_bool opt_verbose_bootstrap; static my_bool verbose_errors; @@ -83,6 +84,8 @@ static struct my_option my_long_options[]= 0, 0}, {"silent", 's', "Print less information", &opt_silent, &opt_silent, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, + {"verbose-bootstrap", 'o', "Include mysqld bootstrap output",&opt_verbose_bootstrap, + &opt_verbose_bootstrap, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} }; @@ -244,11 +247,12 @@ static char *init_bootstrap_command_line(char *cmdline, size_t size) get_basedir(basedir, sizeof(basedir), mysqld_path); my_snprintf(cmdline, size-1, - "\"\"%s\" --no-defaults --bootstrap" - " \"--language=%s\\share\\english\"" + "\"\"%s\" --no-defaults %s --bootstrap" + " \"--lc-messages-dir=%s/share\"" " --basedir=. --datadir=. --default-storage-engine=myisam" " --max_allowed_packet=9M --loose-skip-innodb" - " --net-buffer-length=16k\"", mysqld_path, basedir); + " --net-buffer-length=16k\"", mysqld_path, + opt_verbose_bootstrap?"--console":"", basedir ); return cmdline; } @@ -552,7 +556,9 @@ static int create_db_instance() /* Do mysqld --bootstrap. */ init_bootstrap_command_line(cmdline, sizeof(cmdline)); - /* verbose("Executing %s", cmdline); */ + + if(opt_verbose_bootstrap) + printf("Executing %s\n", cmdline); in= popen(cmdline, "wt"); if (!in) diff --git a/win/packaging/extra.wxs.in b/win/packaging/extra.wxs.in index e0a36ef2e41..124de5f4b40 100644 --- a/win/packaging/extra.wxs.in +++ b/win/packaging/extra.wxs.in @@ -692,7 +692,7 @@ From 3b944843d2c65f953dadc5d4908d1b8223d2f36e Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Thu, 9 May 2013 23:25:57 +0200 Subject: [PATCH 138/172] Fix compile error --- storage/xtradb/handler/ha_innodb.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc index 8d8ca8bd7ba..3c2e9714f37 100644 --- a/storage/xtradb/handler/ha_innodb.cc +++ b/storage/xtradb/handler/ha_innodb.cc @@ -203,7 +203,7 @@ static ulong innobase_sys_stats_root_page = 0; #endif static my_bool innobase_buffer_pool_shm_checksum = TRUE; static uint innobase_buffer_pool_shm_key = 0; -static ulong srv_lazy_drop_table = 0; +static ulint srv_lazy_drop_table = 0; From 5b31f8785840d63e6a2516758bcd68ac1307d7a7 Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Sat, 11 May 2013 12:20:21 +0300 Subject: [PATCH 139/172] MDEV-4231: Possible bug in function _ma_apply_undo_row_insert() Added comment to clearify the code. storage/maria/ma_blockrec.c: Added comment to clearify the code In case of out of memory or disk error, mark pages with LSN_IMPOSSIBLE to make it easier to know which pages have wrong information. --- storage/maria/ma_blockrec.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/storage/maria/ma_blockrec.c b/storage/maria/ma_blockrec.c index 622d2581cc9..ab134bbac10 100644 --- a/storage/maria/ma_blockrec.c +++ b/storage/maria/ma_blockrec.c @@ -6937,6 +6937,7 @@ my_bool _ma_apply_undo_row_insert(MARIA_HA *info, LSN undo_lsn, res= 0; end: + /* The following is true only if _ma_bitmap_flushable() was called earlier */ if (info->non_flushable_state) _ma_bitmap_flushable(info, -1); _ma_unpin_all_pages_and_finalize_row(info, lsn); @@ -6946,6 +6947,11 @@ err: DBUG_ASSERT(!maria_assert_if_crashed_table); res= 1; _ma_mark_file_crashed(share); + /* + Don't write a new LSN on the used pages. Not important as the file is + marked as crashed and need to be repaired before it can be used. + */ + lsn= LSN_IMPOSSIBLE; goto end; } From 4e9bf37f1f70ddc0c901760e4302dd4040a2730c Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Sat, 11 May 2013 15:55:11 +0300 Subject: [PATCH 140/172] MDEV-4280: Assertion `empty_size == empty_size_on_page' failure in ma_blockrec.c or ER_NOT_KEYFILE on query with DISTINCT and GROUP BY This could happen when using Aria for internal temporary files (default case) and using DISTINCT. _ma_scan_restore_block_record() didn't work correctly if there was rows inserted, updated or deleted on the handler between calls to _ma_scan_remember_block_record() and _ma_scan_restore_block_record(). The effect was that some DISTINCT queries that used remove_dup_with_compare() could fail. .bzrignore: Ignore sql_yacc.hh mysql-test/suite/maria/r/distinct.result: Test case for MDEV-4280 mysql-test/suite/maria/t/distinct.test: Test case for MDEV-4280 mysql-test/t/mysql.test: Fixed test suite (we could get error -1 in some cases) sql/sql_select.cc: Break loop if restart_rnd_next() gives an error storage/maria/ha_maria.cc: scan_restore_pos() can return disk fault error. storage/maria/ma_blockrec.c: _ma_scan_remember_block_record() did incorrectly update scan.dir instead of scan_save.dir . _ma_scan_restore_block_record() didn't work correctly if there was rows inserted,updated or deleted on the handler between calls to _ma_scan_remember_block_record() and _ma_scan_restore_block_record(). Fixed by adding counters for row changes and reading the current scan page if changes had been made. storage/maria/ma_blockrec.h: scan_restore_pos() can return disk fault error. storage/maria/ma_delete.c: Increment row_changes storage/maria/ma_scan.c: scan_restore_pos() can return disk fault error. storage/maria/ma_update.c: Increment row_changes storage/maria/ma_write.c: Increment row_changes storage/maria/maria_def.h: scan_restore_pos() can return disk fault error. --- .bzrignore | 1 + mysql-test/suite/maria/r/distinct.result | 25 +++++++++ mysql-test/suite/maria/t/distinct.test | 25 +++++++++ mysql-test/t/mysql.test | 2 +- sql/sql_select.cc | 3 +- storage/maria/ha_maria.cc | 4 +- storage/maria/ma_blockrec.c | 67 +++++++++++++++++++----- storage/maria/ma_blockrec.h | 4 +- storage/maria/ma_delete.c | 1 + storage/maria/ma_scan.c | 3 +- storage/maria/ma_update.c | 1 + storage/maria/ma_write.c | 1 + storage/maria/maria_def.h | 6 ++- 13 files changed, 121 insertions(+), 22 deletions(-) create mode 100644 mysql-test/suite/maria/r/distinct.result create mode 100644 mysql-test/suite/maria/t/distinct.test diff --git a/.bzrignore b/.bzrignore index 84ebe547912..5d89804d637 100644 --- a/.bzrignore +++ b/.bzrignore @@ -1957,3 +1957,4 @@ CPackSourceConfig.cmake win/nmake_cache.txt *.manifest *.resource.txt +sql/sql_yacc.hh diff --git a/mysql-test/suite/maria/r/distinct.result b/mysql-test/suite/maria/r/distinct.result new file mode 100644 index 00000000000..04d5e3d6a2c --- /dev/null +++ b/mysql-test/suite/maria/r/distinct.result @@ -0,0 +1,25 @@ +DROP TABLE IF EXISTS t1; +CREATE TABLE t1 (a INT, b INT) ENGINE=Aria; +INSERT t1 VALUES (3,2004),(2,2006),(1,2007),(3,2008),(2,2005),(2,2001); +SELECT GROUP_CONCAT(a) FROM t1 GROUP BY b; +GROUP_CONCAT(a) +2 +3 +2 +2 +1 +3 +SELECT DISTINCT GROUP_CONCAT(a) FROM t1 GROUP BY b; +GROUP_CONCAT(a) +2 +3 +1 +DROP TABLE t1; +CREATE TABLE t1 (a INT, b VARCHAR(1)) ENGINE=MyISAM; +INSERT INTO t1 VALUES (7,'q'),(2,NULL),(7,'g'),(6,'x'); +SELECT DISTINCT MAX( a ) FROM t1 GROUP BY b ORDER BY DES_DECRYPT( b ); +MAX( a ) +2 +7 +6 +DROP TABLE t1; diff --git a/mysql-test/suite/maria/t/distinct.test b/mysql-test/suite/maria/t/distinct.test new file mode 100644 index 00000000000..b30d97b8383 --- /dev/null +++ b/mysql-test/suite/maria/t/distinct.test @@ -0,0 +1,25 @@ +# +# MDEV-4280: +# Assertion `empty_size == empty_size_on_page' failure in ma_blockrec.c or +# ER_NOT_KEYFILE on query with DISTINCT and GROUP BY +# +# This issue was a bug in how we delete row during duplicate removal when +# we use Aria for internal temporary table. +# + +-- source include/have_maria.inc + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +CREATE TABLE t1 (a INT, b INT) ENGINE=Aria; +INSERT t1 VALUES (3,2004),(2,2006),(1,2007),(3,2008),(2,2005),(2,2001); +SELECT GROUP_CONCAT(a) FROM t1 GROUP BY b; +SELECT DISTINCT GROUP_CONCAT(a) FROM t1 GROUP BY b; +DROP TABLE t1; + +CREATE TABLE t1 (a INT, b VARCHAR(1)) ENGINE=MyISAM; +INSERT INTO t1 VALUES (7,'q'),(2,NULL),(7,'g'),(6,'x'); +SELECT DISTINCT MAX( a ) FROM t1 GROUP BY b ORDER BY DES_DECRYPT( b ); +DROP TABLE t1; diff --git a/mysql-test/t/mysql.test b/mysql-test/t/mysql.test index dc6c8cf9be7..4ed776f1987 100644 --- a/mysql-test/t/mysql.test +++ b/mysql-test/t/mysql.test @@ -224,7 +224,7 @@ drop table t17583; --exec $MYSQL test -e "connect test invalid_hostname" 2>&1 --echo The commands reported in the bug report ---replace_regex /\([0-9]*\)/(errno)/ +--replace_regex /\([0-9|-]*\)/(errno)/ --error 1 --exec $MYSQL test -e "\r\r\n\r\n cyril\ has\ found\ a\ bug\ :)XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 2>&1 diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 24ca1ab0174..b76e8afac36 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -14656,7 +14656,8 @@ static int remove_dup_with_compare(THD *thd, TABLE *table, Field **first_field, if (!found) break; // End of file /* Restart search on saved row */ - error=file->restart_rnd_next(record); + if ((error= file->restart_rnd_next(record))) + goto err; } file->extra(HA_EXTRA_NO_CACHE); diff --git a/storage/maria/ha_maria.cc b/storage/maria/ha_maria.cc index 8b1fe4d05b3..ce308887516 100644 --- a/storage/maria/ha_maria.cc +++ b/storage/maria/ha_maria.cc @@ -2255,7 +2255,9 @@ int ha_maria::remember_rnd_pos() int ha_maria::restart_rnd_next(uchar *buf) { - (*file->s->scan_restore_pos)(file, remember_pos); + int error; + if ((error= (*file->s->scan_restore_pos)(file, remember_pos))) + return error; return rnd_next(buf); } diff --git a/storage/maria/ma_blockrec.c b/storage/maria/ma_blockrec.c index 71bbb389ca2..73b3326fd28 100644 --- a/storage/maria/ma_blockrec.c +++ b/storage/maria/ma_blockrec.c @@ -4008,6 +4008,8 @@ static int delete_dir_entry(uchar *buff, uint block_size, uint record_number, uint length, empty_space; uchar *dir; DBUG_ENTER("delete_dir_entry"); + DBUG_PRINT("enter", ("record_number: %u number_of_records: %u", + record_number, number_of_records)); #ifdef SANITY_CHECKS if (record_number >= number_of_records || @@ -4024,7 +4026,8 @@ static int delete_dir_entry(uchar *buff, uint block_size, uint record_number, check_directory(buff, block_size, 0, (uint) -1); empty_space= uint2korr(buff + EMPTY_SPACE_OFFSET); dir= dir_entry_pos(buff, block_size, record_number); - length= uint2korr(dir + 2); + length= uint2korr(dir + 2); /* Length of entry we just deleted */ + DBUG_ASSERT(uint2korr(dir) != 0 && length < block_size); if (record_number == number_of_records - 1) { @@ -5230,11 +5233,6 @@ void _ma_scan_end_block_record(MARIA_HA *info) For the moment we can only remember one position, but this is good enough for MySQL usage - @Warning - When this function is called, we assume that the thread is not deleting - or updating the current row before ma_scan_restore_block_record() - is called! - @return @retval 0 ok @retval HA_ERR_WRONG_IN_RECORD Could not allocate memory to hold position @@ -5254,15 +5252,18 @@ int _ma_scan_remember_block_record(MARIA_HA *info, info->scan_save->bitmap_buff= ((uchar*) info->scan_save + ALIGN_SIZE(sizeof(*info->scan_save))); } - /* Point to the last read row */ - *lastpos= info->cur_row.nextpos - 1; - info->scan.dir+= DIR_ENTRY_SIZE; + /* For checking if pages have changed since we last read it */ + info->scan.row_changes= info->row_changes; /* Remember used bitmap and used head page */ bitmap_buff= info->scan_save->bitmap_buff; memcpy(info->scan_save, &info->scan, sizeof(*info->scan_save)); info->scan_save->bitmap_buff= bitmap_buff; memcpy(bitmap_buff, info->scan.bitmap_buff, info->s->block_size * 2); + + /* Point to the last read row */ + *lastpos= info->cur_row.nextpos - 1; + info->scan_save->dir+= DIR_ENTRY_SIZE; DBUG_RETURN(0); } @@ -5270,15 +5271,22 @@ int _ma_scan_remember_block_record(MARIA_HA *info, /** @brief restore scan block it's original values + @return + 0 ok + # error + @note In theory we could swap bitmap buffers instead of copy them. For the moment we don't do that because there are variables pointing inside the buffers and it's a bit of hassle to either make them relative or repoint them. + + If the data file has changed, we will re-read the new block record + to ensure that when we continue scanning we can ignore any deleted rows. */ -void _ma_scan_restore_block_record(MARIA_HA *info, - MARIA_RECORD_POS lastpos) +int _ma_scan_restore_block_record(MARIA_HA *info, + MARIA_RECORD_POS lastpos) { uchar *bitmap_buff; DBUG_ENTER("_ma_scan_restore_block_record"); @@ -5289,7 +5297,26 @@ void _ma_scan_restore_block_record(MARIA_HA *info, info->scan.bitmap_buff= bitmap_buff; memcpy(bitmap_buff, info->scan_save->bitmap_buff, info->s->block_size * 2); - DBUG_VOID_RETURN; + if (info->scan.row_changes != info->row_changes) + { + /* + Table has been changed. We have to re-read the current page block as + data may have changed on it that we have to see. + */ + if (!(pagecache_read(info->s->pagecache, + &info->dfile, + ma_recordpos_to_page(info->scan.row_base_page), + 0, info->scan.page_buff, + info->s->page_type, + PAGECACHE_LOCK_LEFT_UNLOCKED, 0))) + DBUG_RETURN(my_errno); + info->scan.number_of_rows= + (uint) (uchar) info->scan.page_buff[DIR_COUNT_OFFSET]; + info->scan.dir_end= (info->scan.page_buff + info->s->block_size - + PAGE_SUFFIX_SIZE - + info->scan.number_of_rows * DIR_ENTRY_SIZE); + } + DBUG_RETURN(0); } @@ -5316,7 +5343,7 @@ void _ma_scan_restore_block_record(MARIA_HA *info, RETURN 0 ok - # Error code + # Error code (Normally HA_ERR_END_OF_FILE) */ int _ma_scan_block_record(MARIA_HA *info, uchar *record, @@ -5336,6 +5363,12 @@ restart_record_read: uchar *data, *end_of_data; int error; + /* Ensure that scan.dir and record_pos are in sync */ + DBUG_ASSERT(info->scan.dir == dir_entry_pos(info->scan.page_buff, + share->block_size, + record_pos)); + + /* Search for a valid directory entry (not 0) */ while (!(offset= uint2korr(info->scan.dir))) { info->scan.dir-= DIR_ENTRY_SIZE; @@ -5348,13 +5381,19 @@ restart_record_read: } #endif } + /* + This should always be true as the directory should always start with + a valid entry. + */ + DBUG_ASSERT(info->scan.dir >= info->scan.dir_end); + /* found row */ info->cur_row.lastpos= info->scan.row_base_page + record_pos; info->cur_row.nextpos= record_pos + 1; data= info->scan.page_buff + offset; length= uint2korr(info->scan.dir + 2); end_of_data= data + length; - info->scan.dir-= DIR_ENTRY_SIZE; /* Point to previous row */ + info->scan.dir-= DIR_ENTRY_SIZE; /* Point to next row to process */ #ifdef SANITY_CHECKS if (end_of_data > info->scan.dir_end || offset < PAGE_HEADER_SIZE || length < share->base.min_block_length) diff --git a/storage/maria/ma_blockrec.h b/storage/maria/ma_blockrec.h index 2a323d16ffa..f6aae8d4759 100644 --- a/storage/maria/ma_blockrec.h +++ b/storage/maria/ma_blockrec.h @@ -168,8 +168,8 @@ my_bool _ma_scan_init_block_record(MARIA_HA *info); void _ma_scan_end_block_record(MARIA_HA *info); int _ma_scan_remember_block_record(MARIA_HA *info, MARIA_RECORD_POS *lastpos); -void _ma_scan_restore_block_record(MARIA_HA *info, - MARIA_RECORD_POS lastpos); +int _ma_scan_restore_block_record(MARIA_HA *info, + MARIA_RECORD_POS lastpos); MARIA_RECORD_POS _ma_write_init_block_record(MARIA_HA *info, const uchar *record); diff --git a/storage/maria/ma_delete.c b/storage/maria/ma_delete.c index ab66499ecfe..977c7c82cb7 100644 --- a/storage/maria/ma_delete.c +++ b/storage/maria/ma_delete.c @@ -112,6 +112,7 @@ int maria_delete(MARIA_HA *info,const uchar *record) info->state->checksum-= info->cur_row.checksum; info->state->records--; info->update= HA_STATE_CHANGED+HA_STATE_DELETED+HA_STATE_ROW_CHANGED; + info->row_changes++; share->state.changed|= (STATE_NOT_OPTIMIZED_ROWS | STATE_NOT_MOVABLE | STATE_NOT_ZEROFILLED); info->state->changed=1; diff --git a/storage/maria/ma_scan.c b/storage/maria/ma_scan.c index cbac463a2c8..ad526211615 100644 --- a/storage/maria/ma_scan.c +++ b/storage/maria/ma_scan.c @@ -68,7 +68,8 @@ int _ma_def_scan_remember_pos(MARIA_HA *info, MARIA_RECORD_POS *lastpos) } -void _ma_def_scan_restore_pos(MARIA_HA *info, MARIA_RECORD_POS lastpos) +int _ma_def_scan_restore_pos(MARIA_HA *info, MARIA_RECORD_POS lastpos) { info->cur_row.nextpos= lastpos; + return 0; } diff --git a/storage/maria/ma_update.c b/storage/maria/ma_update.c index abd9116a711..80b1fd86782 100644 --- a/storage/maria/ma_update.c +++ b/storage/maria/ma_update.c @@ -173,6 +173,7 @@ int maria_update(register MARIA_HA *info, const uchar *oldrec, uchar *newrec) We can't yet have HA_STATE_AKTIV here, as block_record dosn't support it */ info->update= (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED | key_changed); + info->row_changes++; share->state.changed|= STATE_NOT_MOVABLE | STATE_NOT_ZEROFILLED; info->state->changed= 1; diff --git a/storage/maria/ma_write.c b/storage/maria/ma_write.c index b4bf5086e0b..3c5efdc2ef0 100644 --- a/storage/maria/ma_write.c +++ b/storage/maria/ma_write.c @@ -288,6 +288,7 @@ int maria_write(MARIA_HA *info, uchar *record) info->state->records++; info->update= (HA_STATE_CHANGED | HA_STATE_AKTIV | HA_STATE_WRITTEN | HA_STATE_ROW_CHANGED); + info->row_changes++; share->state.changed|= STATE_NOT_MOVABLE | STATE_NOT_ZEROFILLED; info->state->changed= 1; diff --git a/storage/maria/maria_def.h b/storage/maria/maria_def.h index 41501b8eb74..fe9bf10fe24 100644 --- a/storage/maria/maria_def.h +++ b/storage/maria/maria_def.h @@ -317,7 +317,7 @@ typedef struct st_maria_share /* End scan */ void (*scan_end)(MARIA_HA *); int (*scan_remember_pos)(MARIA_HA *, MARIA_RECORD_POS*); - void (*scan_restore_pos)(MARIA_HA *, MARIA_RECORD_POS); + int (*scan_restore_pos)(MARIA_HA *, MARIA_RECORD_POS); /* Pre-write of row (some handlers may do the actual write here) */ MARIA_RECORD_POS (*write_record_init)(MARIA_HA *, const uchar *); /* Write record (or accept write_record_init) */ @@ -492,6 +492,7 @@ typedef struct st_maria_block_scan ulonglong bits; uint number_of_rows, bit_pos; MARIA_RECORD_POS row_base_page; + ulonglong row_changes; } MARIA_BLOCK_SCAN; @@ -533,6 +534,7 @@ struct st_maria_handler int (*read_record)(MARIA_HA *, uchar*, MARIA_RECORD_POS); invalidator_by_filename invalidator; /* query cache invalidator */ ulonglong last_auto_increment; /* auto value at start of statement */ + ulonglong row_changes; /* Incremented for each change */ ulong this_unique; /* uniq filenumber or thread */ ulong last_unique; /* last unique number */ ulong this_loop; /* counter for this open */ @@ -1175,7 +1177,7 @@ my_bool _ma_check_status(void *param); void _ma_restore_status(void *param); void _ma_reset_status(MARIA_HA *maria); int _ma_def_scan_remember_pos(MARIA_HA *info, MARIA_RECORD_POS *lastpos); -void _ma_def_scan_restore_pos(MARIA_HA *info, MARIA_RECORD_POS lastpos); +int _ma_def_scan_restore_pos(MARIA_HA *info, MARIA_RECORD_POS lastpos); #include "ma_commit.h" From 4b9a6c03fafe7f4c1901ba909796a3385184c516 Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Sat, 11 May 2013 18:57:06 +0300 Subject: [PATCH 141/172] Fixed compiler warning --- client/mysqldump.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/mysqldump.c b/client/mysqldump.c index b271cb8429b..ece88a51306 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -1886,7 +1886,7 @@ static void print_xml_row(FILE *xml_file, const char *row_name, const char *str_create) { uint i; - my_bool body_found= 0; + my_bool body_found __attribute__((unused)) = 0; char *create_stmt_ptr= NULL; ulong create_stmt_len= 0; MYSQL_FIELD *field; From 3b3f870994299c905627c7925c4af473e948d78d Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Sat, 11 May 2013 20:23:57 +0300 Subject: [PATCH 142/172] Fixed compiler failure on solaris --- mysys/my_gethwaddr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysys/my_gethwaddr.c b/mysys/my_gethwaddr.c index c96af3f1018..95306e71650 100644 --- a/mysys/my_gethwaddr.c +++ b/mysys/my_gethwaddr.c @@ -101,7 +101,7 @@ my_bool my_gethwaddr(uchar *to) uint i; for (i= 0; res && i < ifc.ifc_len / sizeof(ifr[0]); i++) { -#ifdef SIOCGIFHWADDR +#ifdef __linux__ if (ioctl(fd, SIOCGIFHWADDR, &ifr[i]) >= 0) res= memcpy_and_test(to, (uchar *)&ifr[i].ifr_hwaddr.sa_data, ETHER_ADDR_LEN); From 0737932b907214221bdf1b6fc1eec1d0d98bbfde Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Sat, 11 May 2013 20:31:50 +0300 Subject: [PATCH 143/172] Fixed that SHOW PROCESSLIST and information_schema.processlist uses the right length for user names. Fixed some failing tests mysql-test/mysql-test-run.pl: Removed warning from mysql-test-run mysql-test/r/create.result: Updated result mysql-test/r/log_slow.result: Fixed failing test mysql-test/suite/funcs_1/r/is_columns_is.result: Updated result mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result: Updated result mysql-test/suite/funcs_1/r/processlist_val_no_prot.result: Updated result mysql-test/t/log_slow.test: Ensure variables are properly reset at end of test sql/sql_show.cc: Fixed max length for user names --- mysql-test/mysql-test-run.pl | 2 +- mysql-test/r/create.result | 4 ++-- mysql-test/r/log_slow.result | 4 +++- mysql-test/suite/funcs_1/r/is_columns_is.result | 4 ++-- mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result | 4 ++-- mysql-test/suite/funcs_1/r/processlist_val_no_prot.result | 2 +- mysql-test/t/log_slow.test | 5 +++-- sql/sql_show.cc | 5 +++-- 8 files changed, 17 insertions(+), 13 deletions(-) diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index ee2978e0a32..3f2d359eb98 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -524,7 +524,7 @@ sub main { } } - if ( not defined @$completed ) { + if ( not @$completed ) { mtr_error("Test suite aborted"); } diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result index 4cb14aabb2c..751dd939361 100644 --- a/mysql-test/r/create.result +++ b/mysql-test/r/create.result @@ -1752,7 +1752,7 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `ID` bigint(4) NOT NULL DEFAULT '0', - `USER` varchar(16) NOT NULL DEFAULT '', + `USER` varchar(128) NOT NULL DEFAULT '', `HOST` varchar(64) NOT NULL DEFAULT '', `DB` varchar(64) DEFAULT NULL, `COMMAND` varchar(16) NOT NULL DEFAULT '', @@ -1770,7 +1770,7 @@ show create table t1; Table Create Table t1 CREATE TEMPORARY TABLE `t1` ( `ID` bigint(4) NOT NULL DEFAULT '0', - `USER` varchar(16) NOT NULL DEFAULT '', + `USER` varchar(128) NOT NULL DEFAULT '', `HOST` varchar(64) NOT NULL DEFAULT '', `DB` varchar(64) DEFAULT NULL, `COMMAND` varchar(16) NOT NULL DEFAULT '', diff --git a/mysql-test/r/log_slow.result b/mysql-test/r/log_slow.result index 318dfa7568d..89846dc698c 100644 --- a/mysql-test/r/log_slow.result +++ b/mysql-test/r/log_slow.result @@ -13,6 +13,7 @@ log_slow_filter admin,filesort,filesort_on_disk,full_join,full_scan,query_cache, log_slow_queries ON log_slow_rate_limit 1 log_slow_verbosity +set @org_slow_query_log= @@global.slow_query_log; set @@log_slow_filter= "filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk,admin"; select @@log_slow_filter; @@log_slow_filter @@ -68,6 +69,7 @@ count(*) 1 truncate mysql.slow_log; set @@long_query_time=default; -set global slow_query_log=default; +set global slow_query_log= @org_slow_query_log; set @@log_slow_filter=default; set @@log_slow_verbosity=default; +set global log_output= default; diff --git a/mysql-test/suite/funcs_1/r/is_columns_is.result b/mysql-test/suite/funcs_1/r/is_columns_is.result index 5707dcbb3db..784eae541c6 100644 --- a/mysql-test/suite/funcs_1/r/is_columns_is.result +++ b/mysql-test/suite/funcs_1/r/is_columns_is.result @@ -230,7 +230,7 @@ def information_schema PROCESSLIST STAGE 10 0 NO tinyint NULL NULL 3 0 NULL NULL def information_schema PROCESSLIST STATE 7 NULL YES varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) select def information_schema PROCESSLIST TIME 6 0 NO int NULL NULL 10 0 NULL NULL NULL int(7) select def information_schema PROCESSLIST TIME_MS 9 0.000 NO decimal NULL NULL 22 3 NULL NULL NULL decimal(22,3) select -def information_schema PROCESSLIST USER 2 NO varchar 16 48 NULL NULL NULL utf8 utf8_general_ci varchar(16) select +def information_schema PROCESSLIST USER 2 NO varchar 128 384 NULL NULL NULL utf8 utf8_general_ci varchar(128) select def information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_CATALOG 1 NO varchar 512 1536 NULL NULL NULL utf8 utf8_general_ci varchar(512) select def information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) select def information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) select @@ -688,7 +688,7 @@ NULL information_schema PARTITIONS CHECKSUM bigint NULL NULL NULL NULL bigint(21 3.0000 information_schema PLUGINS PLUGIN_MATURITY varchar 12 36 utf8 utf8_general_ci varchar(12) 3.0000 information_schema PLUGINS PLUGIN_AUTH_VERSION varchar 80 240 utf8 utf8_general_ci varchar(80) NULL information_schema PROCESSLIST ID bigint NULL NULL NULL NULL bigint(4) -3.0000 information_schema PROCESSLIST USER varchar 16 48 utf8 utf8_general_ci varchar(16) +3.0000 information_schema PROCESSLIST USER varchar 128 384 utf8 utf8_general_ci varchar(128) 3.0000 information_schema PROCESSLIST HOST varchar 64 192 utf8 utf8_general_ci varchar(64) 3.0000 information_schema PROCESSLIST DB varchar 64 192 utf8 utf8_general_ci varchar(64) 3.0000 information_schema PROCESSLIST COMMAND varchar 16 48 utf8 utf8_general_ci varchar(16) diff --git a/mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result b/mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result index 2112da6761e..17009f79662 100644 --- a/mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result +++ b/mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result @@ -23,7 +23,7 @@ SHOW CREATE TABLE processlist; Table Create Table PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` ( `ID` bigint(4) NOT NULL DEFAULT '0', - `USER` varchar(16) NOT NULL DEFAULT '', + `USER` varchar(128) NOT NULL DEFAULT '', `HOST` varchar(64) NOT NULL DEFAULT '', `DB` varchar(64) DEFAULT NULL, `COMMAND` varchar(16) NOT NULL DEFAULT '', @@ -96,7 +96,7 @@ SHOW CREATE TABLE processlist; Table Create Table PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` ( `ID` bigint(4) NOT NULL DEFAULT '0', - `USER` varchar(16) NOT NULL DEFAULT '', + `USER` varchar(128) NOT NULL DEFAULT '', `HOST` varchar(64) NOT NULL DEFAULT '', `DB` varchar(64) DEFAULT NULL, `COMMAND` varchar(16) NOT NULL DEFAULT '', diff --git a/mysql-test/suite/funcs_1/r/processlist_val_no_prot.result b/mysql-test/suite/funcs_1/r/processlist_val_no_prot.result index 0893fa3ca20..4f174318f58 100644 --- a/mysql-test/suite/funcs_1/r/processlist_val_no_prot.result +++ b/mysql-test/suite/funcs_1/r/processlist_val_no_prot.result @@ -13,7 +13,7 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.PROCESSLIST; Table Create Table PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` ( `ID` bigint(4) NOT NULL DEFAULT '0', - `USER` varchar(16) NOT NULL DEFAULT '', + `USER` varchar(128) NOT NULL DEFAULT '', `HOST` varchar(64) NOT NULL DEFAULT '', `DB` varchar(64) DEFAULT NULL, `COMMAND` varchar(16) NOT NULL DEFAULT '', diff --git a/mysql-test/t/log_slow.test b/mysql-test/t/log_slow.test index 54f56e1bdfc..8d5a09d7a94 100644 --- a/mysql-test/t/log_slow.test +++ b/mysql-test/t/log_slow.test @@ -6,6 +6,7 @@ select @@log_slow_filter; select @@log_slow_rate_limit; select @@log_slow_verbosity; show variables like "log_slow%"; +set @org_slow_query_log= @@global.slow_query_log; # Some simple test to set log_slow_filter set @@log_slow_filter= "filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk,admin"; @@ -51,9 +52,9 @@ select sleep(0.5); select count(*) FROM mysql.slow_log; truncate mysql.slow_log; - # Reset used variables set @@long_query_time=default; -set global slow_query_log=default; +set global slow_query_log= @org_slow_query_log; set @@log_slow_filter=default; set @@log_slow_verbosity=default; +set global log_output= default; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 2b004a4ea44..0229660be8d 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -2163,7 +2163,7 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose) DBUG_ENTER("mysqld_list_processes"); field_list.push_back(new Item_int("Id", 0, MY_INT32_NUM_DECIMAL_DIGITS)); - field_list.push_back(new Item_empty_string("User",16)); + field_list.push_back(new Item_empty_string("User", USERNAME_CHAR_LENGTH)); field_list.push_back(new Item_empty_string("Host",LIST_PROCESS_HOST_LEN)); field_list.push_back(field=new Item_empty_string("db",NAME_CHAR_LEN)); field->maybe_null=1; @@ -8414,7 +8414,8 @@ ST_FIELD_INFO variables_fields_info[]= ST_FIELD_INFO processlist_fields_info[]= { {"ID", 4, MYSQL_TYPE_LONGLONG, 0, 0, "Id", SKIP_OPEN_TABLE}, - {"USER", 16, MYSQL_TYPE_STRING, 0, 0, "User", SKIP_OPEN_TABLE}, + {"USER", USERNAME_CHAR_LENGTH, MYSQL_TYPE_STRING, 0, 0, "User", + SKIP_OPEN_TABLE}, {"HOST", LIST_PROCESS_HOST_LEN, MYSQL_TYPE_STRING, 0, 0, "Host", SKIP_OPEN_TABLE}, {"DB", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 1, "Db", SKIP_OPEN_TABLE}, From 3bd6e4b8ee7d32c0e2ecfd962e6debf07d9f3956 Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Sun, 12 May 2013 11:29:16 +0300 Subject: [PATCH 144/172] MDEV-3999: Valgrind errors 'invalid write' or assorted server crashes on concurrent flow with partitioned Aria tables MDEV-3989: Server crashes on import from MariaDB mysqldump export with partitioned Aria table. Problem was that bulk insert in aria was not properly protected against concurrent selects. storage/maria/ha_maria.cc: Move settings of file->state to _ma_block_start_trans() to ensure that lock_key_trees is not changed by a concurrent bulk_insert. storage/maria/ma_check.c: Added DBUG_ASSERT() storage/maria/ma_open.c: Set start_trans to ma_start_trans for default behaviour. storage/maria/ma_pagecrc.c: Removed test for 'non_transactional' as a now_transactinal could be reset while a flush was happening. storage/maria/ma_state.c: Moved setting of info->state from external_lock to start_trans to protect against concurrent running bulk inserts. This works as the other threads will wait in thr_lock() until bulk_insert is done and keys are re-generated. storage/maria/ma_state.h: Added _ma_start_trans() --- storage/maria/ha_maria.cc | 17 -------------- storage/maria/ma_check.c | 3 +-- storage/maria/ma_open.c | 6 +++-- storage/maria/ma_pagecrc.c | 3 +-- storage/maria/ma_state.c | 45 +++++++++++++++++++++++++++++++++----- storage/maria/ma_state.h | 1 + 6 files changed, 47 insertions(+), 28 deletions(-) diff --git a/storage/maria/ha_maria.cc b/storage/maria/ha_maria.cc index 31b903871ce..dd5dfe5ce3a 100644 --- a/storage/maria/ha_maria.cc +++ b/storage/maria/ha_maria.cc @@ -2638,23 +2638,6 @@ int ha_maria::external_lock(THD *thd, int lock_type) /* Transactional table */ if (lock_type != F_UNLCK) { - if (!file->s->lock_key_trees) // If we don't use versioning - { - /* - We come here in the following cases: - - The table is a temporary table - - It's a table which is crash safe but not yet versioned, for - example a table with fulltext or rtree keys - - Set the current state to point to save_state so that the - block_format code don't count the same record twice. - Copy also the current state. This may have been wrong if the - same file was used several times in the last statement - */ - file->state= file->state_start; - *file->state= file->s->state.state; - } - if (file->trn) { /* This can only happen with tables created with clone() */ diff --git a/storage/maria/ma_check.c b/storage/maria/ma_check.c index 883261d5057..2c58bd6a964 100644 --- a/storage/maria/ma_check.c +++ b/storage/maria/ma_check.c @@ -2424,11 +2424,10 @@ static void restore_table_state_after_repair(MARIA_HA *info, { maria_versioning(info, info->s->have_versioning); info->s->lock_key_trees= org_share->lock_key_trees; + DBUG_ASSERT(!info->s->have_versioning || info->s->lock_key_trees); } - - /** @brief Drop all indexes diff --git a/storage/maria/ma_open.c b/storage/maria/ma_open.c index 5f90f61c786..0933424436a 100644 --- a/storage/maria/ma_open.c +++ b/storage/maria/ma_open.c @@ -894,8 +894,10 @@ MARIA_HA *maria_open(const char *name, int mode, uint open_flags) &share->keyinfo[i].root_lock); mysql_rwlock_init(key_SHARE_mmap_lock, &share->mmap_lock); - share->row_is_visible= _ma_row_visible_always; - share->lock.get_status= _ma_reset_update_flag; + share->row_is_visible= _ma_row_visible_always; + share->lock.get_status= _ma_reset_update_flag; + share->lock.start_trans= _ma_start_trans; + if (!thr_lock_inited) { /* Probably a single threaded program; Don't use concurrent inserts */ diff --git a/storage/maria/ma_pagecrc.c b/storage/maria/ma_pagecrc.c index 58e3b4b203d..a79f34016c1 100644 --- a/storage/maria/ma_pagecrc.c +++ b/storage/maria/ma_pagecrc.c @@ -358,8 +358,7 @@ my_bool maria_flush_log_for_page(uchar *page, MARIA_SHARE *share= (MARIA_SHARE*) data_ptr; DBUG_ENTER("maria_flush_log_for_page"); /* share is 0 here only in unittest */ - DBUG_ASSERT(!share || (share->page_type == PAGECACHE_LSN_PAGE && - share->now_transactional)); + DBUG_ASSERT(!share || share->page_type == PAGECACHE_LSN_PAGE); lsn= lsn_korr(page); if (translog_flush(lsn)) DBUG_RETURN(1); diff --git a/storage/maria/ma_state.c b/storage/maria/ma_state.c index 1f4a7504c56..f130da21d07 100644 --- a/storage/maria/ma_state.c +++ b/storage/maria/ma_state.c @@ -59,6 +59,8 @@ my_bool _ma_setup_live_state(MARIA_HA *info) MARIA_STATE_HISTORY *history; DBUG_ENTER("_ma_setup_live_state"); + DBUG_ASSERT(share->lock_key_trees); + if (maria_create_trn_hook(info)) DBUG_RETURN(1); @@ -377,6 +379,17 @@ void _ma_reset_update_flag(void *param, info->state->changed= 0; } +my_bool _ma_start_trans(void* param) +{ + MARIA_HA *info=(MARIA_HA*) param; + if (!info->s->lock_key_trees) + { + info->state= info->state_start; + *info->state= info->s->state.state; + } + return 0; +} + /** @brief Check if should allow concurrent inserts @@ -622,6 +635,22 @@ my_bool _ma_block_start_trans(void* param) */ return _ma_setup_live_state(info); } + else + { + /* + We come here in the following cases: + - The table is a temporary table + - It's a table which is crash safe but not yet versioned, for + example a table with fulltext or rtree keys + + Set the current state to point to save_state so that the + block_format code don't count the same record twice. + Copy also the current state. This may have been wrong if the + same file was used several times in the last statement + */ + info->state= info->state_start; + *info->state= info->s->state.state; + } /* Info->trn is set if this table is already handled and we are @@ -668,9 +697,11 @@ my_bool _ma_block_start_trans_no_versioning(void* param) { MARIA_HA *info=(MARIA_HA*) param; DBUG_ENTER("_ma_block_get_status_no_version"); - DBUG_ASSERT(info->s->base.born_transactional); + DBUG_ASSERT(info->s->base.born_transactional && !info->s->lock_key_trees); info->state->changed= 0; /* from _ma_reset_update_flag() */ + info->state= info->state_start; + *info->state= info->s->state.state; if (!info->trn) { /* @@ -689,18 +720,22 @@ my_bool _ma_block_start_trans_no_versioning(void* param) void maria_versioning(MARIA_HA *info, my_bool versioning) { + MARIA_SHARE *share= info->s; /* For now, this is a hack */ - if (info->s->have_versioning) + if (share->have_versioning) { enum thr_lock_type save_lock_type; - /* Assume is a non threaded application (for now) */ - info->s->lock_key_trees= 0; + share->lock_key_trees= versioning; /* Set up info->lock.type temporary for _ma_block_get_status() */ save_lock_type= info->lock.type; info->lock.type= versioning ? TL_WRITE_CONCURRENT_INSERT : TL_WRITE; _ma_block_get_status((void*) info, versioning); info->lock.type= save_lock_type; - info->state= info->state_start= &info->s->state.common; + if (versioning) + info->state= &share->state.common; + else + info->state= &share->state.state; /* Change global values by default */ + info->state_start= info->state; /* Initial values */ } } diff --git a/storage/maria/ma_state.h b/storage/maria/ma_state.h index 03ce5c2ea8c..2903986e32a 100644 --- a/storage/maria/ma_state.h +++ b/storage/maria/ma_state.h @@ -66,6 +66,7 @@ void _ma_update_status_with_lock(MARIA_HA *info); void _ma_restore_status(void *param); void _ma_copy_status(void* to, void *from); void _ma_reset_update_flag(void *param, my_bool concurrent_insert); +my_bool _ma_start_trans(void* param); my_bool _ma_check_status(void *param); void _ma_block_get_status(void* param, my_bool concurrent_insert); void _ma_block_update_status(void *param); From 668306640edd3d3c6f55290000a7398ec7dd888d Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Mon, 13 May 2013 00:43:46 +0300 Subject: [PATCH 145/172] Fixed MDEV-4291: Assertion `trid >= info->s->state.create_trid' failure or data corruption (key points to record outside datafile) on INSERT into an Aria table. The isssue was that the check if a table was moved between systems didn't take into account that create_trid could be bigger than the current max trid on the new system. This could only happen if one tried to move a table that one had just done a 'REPAIR TABLE' on. Tables that one had run 'aria_chk --zerofill' on worked. Fixed this by assuming that if create_trid is too big then the table has been moved from one system to another and we have to do an automatic zerofill. Other fixed: - Added a check to detect a wrong create_trid in 'check table'. - aria_chk -dvv will now write out also the create_trid (to make future error finding easier) - aria_chk --zerofill doesn't anymore require a aria_control_file - Removed some warnings from safemalloc when using aria_chk, ma_test1 and ma_test2. include/myisamchk.h: Removed wrong 'QQ' flags (the flags are used by myisamchk and aria_chk) storage/maria/ha_maria.cc: maria_chk_status() can now also return an error. storage/maria/ma_check.c: In maria_chk_status() check if create_trid value is too big. storage/maria/ma_open.c: Changed check if table is moved so that we can detect wrong create_trid values. Don't set STATE_NOT_MOVABLE flag if we are doing repair/check. This was done so that aria_chk can print out the movable flag. storage/maria/ma_test1.c: Added code to suppress memory leaks from safemalloc storage/maria/ma_test2.c: Added code to suppress memory leaks from safemalloc storage/maria/maria_chk.c: Added code to suppress memory leaks from safemalloc. Make help text a bit better for --HELP and --zerofill. Incresed version number. Don't require a control file if we are only doing --zerofill Print out 'create_trid' when doing --describe --verbose storage/maria/unittest/ma_test_recovery.expected: Updated result file --- include/myisamchk.h | 20 +- storage/maria/ha_maria.cc | 5 +- storage/maria/ma_check.c | 23 +- storage/maria/ma_open.c | 24 +- storage/maria/ma_test1.c | 3 +- storage/maria/ma_test2.c | 4 + storage/maria/maria_chk.c | 66 +-- .../maria/unittest/ma_test_recovery.expected | 384 +++++++++--------- 8 files changed, 291 insertions(+), 238 deletions(-) diff --git a/include/myisamchk.h b/include/myisamchk.h index 0ee03c03c49..19c2bf47ddb 100644 --- a/include/myisamchk.h +++ b/include/myisamchk.h @@ -31,27 +31,27 @@ #define T_AUTO_REPAIR 2 /* QQ to be removed */ #define T_BACKUP_DATA 4 #define T_CALC_CHECKSUM 8 -#define T_CHECK 16 /* QQ to be removed */ -#define T_CHECK_ONLY_CHANGED 32 /* QQ to be removed */ +#define T_CHECK 16 +#define T_CHECK_ONLY_CHANGED 32 #define T_CREATE_MISSING_KEYS 64 #define T_DESCRIPT 128 #define T_DONT_CHECK_CHECKSUM 256 #define T_EXTEND 512 -#define T_FAST (1L << 10) /* QQ to be removed */ -#define T_FORCE_CREATE (1L << 11) /* QQ to be removed */ +#define T_FAST (1L << 10) +#define T_FORCE_CREATE (1L << 11) #define T_FORCE_UNIQUENESS (1L << 12) #define T_INFO (1L << 13) #define T_MEDIUM (1L << 14) -#define T_QUICK (1L << 15) /* QQ to be removed */ -#define T_READONLY (1L << 16) /* QQ to be removed */ +#define T_QUICK (1L << 15) +#define T_READONLY (1L << 16) #define T_REP (1L << 17) -#define T_REP_BY_SORT (1L << 18) /* QQ to be removed */ -#define T_REP_PARALLEL (1L << 19) /* QQ to be removed */ +#define T_REP_BY_SORT (1L << 18) +#define T_REP_PARALLEL (1L << 19) #define T_RETRY_WITHOUT_QUICK (1L << 20) #define T_SAFE_REPAIR (1L << 21) #define T_SILENT (1L << 22) -#define T_SORT_INDEX (1L << 23) /* QQ to be removed */ -#define T_SORT_RECORDS (1L << 24) /* QQ to be removed */ +#define T_SORT_INDEX (1L << 23) +#define T_SORT_RECORDS (1L << 24) #define T_STATISTICS (1L << 25) #define T_UNPACK (1L << 26) #define T_UPDATE_STATE (1L << 27) diff --git a/storage/maria/ha_maria.cc b/storage/maria/ha_maria.cc index dd5dfe5ce3a..d050a65a1cb 100644 --- a/storage/maria/ha_maria.cc +++ b/storage/maria/ha_maria.cc @@ -1309,8 +1309,9 @@ int ha_maria::check(THD * thd, HA_CHECK_OPT * check_opt) old_proc_info= thd_proc_info(thd, "Checking status"); thd_progress_init(thd, 3); - (void) maria_chk_status(¶m, file); // Not fatal - error= maria_chk_size(¶m, file); + error= maria_chk_status(¶m, file); // Not fatal + if (maria_chk_size(¶m, file)) + error= 1; if (!error) error|= maria_chk_del(¶m, file, param.testflag); thd_proc_info(thd, "Checking keys"); diff --git a/storage/maria/ma_check.c b/storage/maria/ma_check.c index 2c58bd6a964..d63ac8be3cb 100644 --- a/storage/maria/ma_check.c +++ b/storage/maria/ma_check.c @@ -140,13 +140,22 @@ void maria_chk_init_for_check(HA_CHECK *param, MARIA_HA *info) Set up transaction handler so that we can see all rows. When rows is read we will check the found id against param->max_tried */ - if (param->max_trid == 0) + if (!info->s->base.born_transactional) + { + /* + There are no trids. Howver we want to set max_trid to make test of + create_trid simpler. + */ + param->max_trid= ~(TrID) 0; + } + else if (param->max_trid == 0) { if (!ma_control_file_inited()) param->max_trid= 0; /* Give warning for first trid found */ else param->max_trid= max_trid_in_system(); } + maria_ignore_trids(info); } @@ -179,6 +188,13 @@ int maria_chk_status(HA_CHECK *param, MARIA_HA *info) if (param->testflag & T_UPDATE_STATE) param->warning_printed=save; } + if (share->state.create_trid > param->max_trid) + { + _ma_check_print_warning(param, + "Table create_trd (%llu) > current max_transaction id (%llu). Table needs to be repaired or zerofilled to be usable", + share->state.create_trid, param->max_trid); + return 1; + } return 0; } @@ -3552,7 +3568,10 @@ int maria_zerofill(HA_CHECK *param, MARIA_HA *info, const char *name) /* Ensure state is later flushed to disk, if within maria_chk */ info->update= (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED); - /* Reset create_trid to make file comparable */ + /* + Reset create_trid to make file comparable and to ensure that new + trid's in the file starts from 0. + */ share->state.create_trid= 0; } if (reenable_logging) diff --git a/storage/maria/ma_open.c b/storage/maria/ma_open.c index 0933424436a..7cefb12faae 100644 --- a/storage/maria/ma_open.c +++ b/storage/maria/ma_open.c @@ -437,15 +437,23 @@ MARIA_HA *maria_open(const char *name, int mode, uint open_flags) share->open_count_not_zero_on_open= 1; /* + A transactional table is not usable on this system if: + - share->state.create_trid > trnman_get_max_trid() + - Critical as trid as stored releativel to create_trid. + - uuid is different + + STATE_NOT_MOVABLE is reset when a table is zerofilled + (has no LSN's and no trids) + We can ignore testing uuid if STATE_NOT_MOVABLE is set, as in this - case the uuid will be set in _ma_mark_file_changed() + case the uuid will be set in _ma_mark_file_changed(). */ - if ((share->state.changed & STATE_NOT_MOVABLE) && - share->base.born_transactional && - ((!(open_flags & HA_OPEN_IGNORE_MOVED_STATE) && - memcmp(share->base.uuid, maria_uuid, MY_UUID_SIZE)) || - (share->state.create_trid > trnman_get_max_trid() && - !maria_in_recovery))) + if (share->base.born_transactional && + ((share->state.create_trid > trnman_get_max_trid() && + !maria_in_recovery) || + ((share->state.changed & STATE_NOT_MOVABLE) && + ((!(open_flags & HA_OPEN_IGNORE_MOVED_STATE) && + memcmp(share->base.uuid, maria_uuid, MY_UUID_SIZE)))))) { DBUG_PRINT("warning", ("table is moved from another system. uuid_diff: %d create_trid: %lu max_trid: %lu", memcmp(share->base.uuid, maria_uuid, @@ -756,7 +764,7 @@ MARIA_HA *maria_open(const char *name, int mode, uint open_flags) HA_ERR_CRASHED_ON_REPAIR : HA_ERR_CRASHED_ON_USAGE); goto err; } - else + else if (!(open_flags & HA_OPEN_FOR_REPAIR)) { /* create_rename_lsn != LSN_NEEDS_NEW_STATE_LSNS */ share->state.changed|= STATE_NOT_MOVABLE; diff --git a/storage/maria/ma_test1.c b/storage/maria/ma_test1.c index 945654a0bbe..5a655d4412a 100644 --- a/storage/maria/ma_test1.c +++ b/storage/maria/ma_test1.c @@ -55,7 +55,6 @@ static void create_key(uchar *key,uint rownr); static void create_record(uchar *record,uint rownr); static void update_record(uchar *record); - /* These are here only for testing of recovery with undo. We are not including maria_def.h here as this test is also to be an example of @@ -506,6 +505,7 @@ end: break; } printf("Dying on request without maria_commit()/maria_close()\n"); + sf_leaking_memory= 1; exit(0); } @@ -514,6 +514,7 @@ end: if (maria_close(file)) goto err; maria_end(); + my_uuid_end(); my_end(MY_CHECK_ERROR); return (0); diff --git a/storage/maria/ma_test2.c b/storage/maria/ma_test2.c index ea1978b4ee5..a3b7a2a9e98 100644 --- a/storage/maria/ma_test2.c +++ b/storage/maria/ma_test2.c @@ -971,6 +971,7 @@ end: break; } printf("Dying on request without maria_commit()/maria_close()\n"); + sf_leaking_memory= 1; /* no memory leak reports here */ exit(0); } if (maria_commit(file)) @@ -1017,6 +1018,7 @@ reads: %10lu\n", } maria_end(); my_free(blob_buffer); + my_uuid_end(); my_end(silent ? MY_CHECK_ERROR : MY_CHECK_ERROR | MY_GIVE_INFO); return(0); err: @@ -1029,6 +1031,8 @@ err2: maria_close(file); } maria_end(); + my_uuid_end(); + my_end(0); return(1); } /* main */ diff --git a/storage/maria/maria_chk.c b/storage/maria/maria_chk.c index 62225a7a4b0..7379af10c03 100644 --- a/storage/maria/maria_chk.c +++ b/storage/maria/maria_chk.c @@ -88,9 +88,22 @@ static int sort_record_index(MARIA_SORT_PARAM *sort_param, MARIA_PAGE *page, uint sortkey, File new_file, my_bool update_index); static my_bool write_log_record(HA_CHECK *param); +static void my_exit(int exit_code) __attribute__ ((noreturn)); HA_CHECK check_param; +/* Free memory and exit */ + +static void my_exit(int exit_code) +{ + free_tmpdir(&maria_chk_tmpdir); + free_defaults(default_argv); + my_end(check_param.testflag & T_INFO ? + MY_CHECK_ERROR | MY_GIVE_INFO : MY_CHECK_ERROR); + exit(exit_code); +} + + /* Main program */ int main(int argc, char **argv) @@ -178,12 +191,8 @@ end: printf("\nTotal of all %d Aria-files:\nData records: %9s Deleted blocks: %9s\n",check_param.total_files,llstr(check_param.total_records,buff), llstr(check_param.total_deleted,buff2)); } - free_defaults(default_argv); - free_tmpdir(&maria_chk_tmpdir); maria_end(); - my_end(check_param.testflag & T_INFO ? - MY_CHECK_ERROR | MY_GIVE_INFO : MY_CHECK_ERROR); - exit(error); + my_exit(error); #ifndef _lint return 0; /* No compiler warning */ #endif @@ -252,10 +261,10 @@ static struct my_option my_long_options[] = "Restart with -r if there are any errors in the table. States will be updated as with --update-state.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, {"HELP", 'H', - "Display this help and exit.", + "Print all argument options sorted alphabetically and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, {"help", '?', - "Display this help and exit.", + "Print all options by groups and exit. See also --HELP", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, {"information", 'i', "Print statistics information about table that is checked.", @@ -406,7 +415,7 @@ static struct my_option my_long_options[] = (char**) &maria_stats_method_str, (char**) &maria_stats_method_str, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, { "zerofill", 'z', - "Fill empty space in data and index files with zeroes,", + "Fill empty space in data and index files with zeroes. This makes the data file movable between different servers.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, { "zerofill-keep-lsn", OPT_ZEROFILL_KEEP_LSN, "Like --zerofill but does not zero out LSN of data/index pages;" @@ -418,7 +427,7 @@ static struct my_option my_long_options[] = static void print_version(void) { - printf("%s Ver 1.1 for %s at %s\n", my_progname, SYSTEM_TYPE, + printf("%s Ver 1.2 for %s at %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE); } @@ -437,8 +446,8 @@ static void usage(void) -#, --debug=... Output debug log. Often this is 'd:t:o,filename'.\n"); #endif printf("\ - -H, --HELP Display this help and exit.\n\ - -?, --help Display this help and exit.\n\ + -H, --HELP Print all argument options sorted alphabetically.\n\ + -?, --help Print all options by groups\n\ --datadir=path Path for control file (and logs if --logdir not used)\n\ --logdir=path Path for log files\n\ --ignore-control-file Don't open the control file. Only use this if you\n\ @@ -554,7 +563,9 @@ Recover (repair)/ options (When using '--recover' or '--safe-recover'):\n\ (It may be VERY slow to do a sort the first time!).\n\ -b, --block-search=#\n\ Find a record, a block at given offset belongs to.\n\ - -z, --zerofill Fill empty space in data and index files with zeroes\n\ + -z, --zerofill Fill empty space in data and index files with zeroes.\n\ + This makes the data file movable between different \n\ + servers.\n\ --zerofill-keep-lsn Like --zerofill but does not zero out LSN of\n\ data/index pages."); @@ -757,7 +768,7 @@ get_one_option(int optid, fprintf(stderr, "The value of the sort key is bigger than max key: %d.\n", MARIA_MAX_KEY); - exit(1); + my_exit(1); } } break; @@ -785,7 +796,7 @@ get_one_option(int optid, break; case 'V': print_version(); - exit(0); + my_exit(0); case OPT_CORRECT_CHECKSUM: if (argument == disabled_my_option) check_param.testflag&= ~T_CALC_CHECKSUM; @@ -800,7 +811,7 @@ get_one_option(int optid, if ((method=find_type(argument, &maria_stats_method_typelib, 2)) <= 0) { fprintf(stderr, "Invalid value of stats_method: %s.\n", argument); - exit(1); + my_exit(1); } switch (method-1) { case 0: @@ -836,10 +847,11 @@ get_one_option(int optid, break; case 'H': my_print_help(my_long_options); - exit(0); + my_print_variables(my_long_options); + my_exit(0); case '?': usage(); - exit(0); + my_exit(0); } return 0; } @@ -856,7 +868,7 @@ static void get_options(register int *argc,register char ***argv) check_param.testflag|=T_WRITE_LOOP; if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option))) - exit(ho_error); + my_exit(ho_error); /* If using repair, then update checksum if one uses --update-state */ if ((check_param.testflag & T_UPDATE_STATE) && @@ -866,7 +878,7 @@ static void get_options(register int *argc,register char ***argv) if (*argc == 0) { usage(); - exit(-1); + my_exit(-1); } if ((check_param.testflag & T_UNPACK) && @@ -874,7 +886,7 @@ static void get_options(register int *argc,register char ***argv) { fprintf(stderr, "%s: --unpack can't be used with --quick or --sort-records\n", my_progname_short); - exit(1); + my_exit(1); } if ((check_param.testflag & T_READONLY) && (check_param.testflag & @@ -883,7 +895,7 @@ static void get_options(register int *argc,register char ***argv) { fprintf(stderr, "%s: Can't use --readonly when repairing or sorting\n", my_progname_short); - exit(1); + my_exit(1); } if (!opt_debug) @@ -891,20 +903,26 @@ static void get_options(register int *argc,register char ***argv) DEBUGGER_OFF; /* Speed up things a bit */ } if (init_tmpdir(&maria_chk_tmpdir, opt_tmpdir)) - exit(1); + my_exit(1); check_param.tmpdir=&maria_chk_tmpdir; if (set_collation_name) if (!(set_collation= get_charset_by_name(set_collation_name, MYF(MY_WME)))) - exit(1); + my_exit(1); if (maria_data_root != default_log_dir && opt_log_dir == default_log_dir) { /* --datadir was used and --log-dir was not. Set log-dir to datadir */ opt_log_dir= maria_data_root; } + + /* If we are using zerofill, then we don't need to read the control file */ + if ((check_param.testflag & (T_ZEROFILL_KEEP_LSN | T_ZEROFILL)) && + !(check_param.testflag & ~(T_REP_ANY | T_SORT_RECORDS | T_SORT_INDEX | T_STATISTICS | T_CHECK | T_FAST | T_CHECK_ONLY_CHANGED))) + opt_ignore_control_file= 1; + return; } /* get options */ @@ -1475,6 +1493,8 @@ static void descript(HA_CHECK *param, register MARIA_HA *info, char *name) LSN_IN_PARTS(share->state.create_rename_lsn), LSN_IN_PARTS(share->state.is_of_horizon), LSN_IN_PARTS(share->state.skip_redo_lsn)); + printf("create_trid: %s\n", + llstr(share->state.create_trid, llbuff)); } compile_time_assert((MY_UUID_STRING_LENGTH + 1) <= sizeof(buff)); buff[MY_UUID_STRING_LENGTH]= 0; diff --git a/storage/maria/unittest/ma_test_recovery.expected b/storage/maria/unittest/ma_test_recovery.expected index 6a6051735c5..6aaff86e6cf 100644 --- a/storage/maria/unittest/ma_test_recovery.expected +++ b/storage/maria/unittest/ma_test_recovery.expected @@ -69,8 +69,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -78,8 +78,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -87,8 +87,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -98,8 +98,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -107,8 +107,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -116,8 +116,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -166,8 +166,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -175,8 +175,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -184,8 +184,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -195,8 +195,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -204,8 +204,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -213,8 +213,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -263,8 +263,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -272,8 +272,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -281,8 +281,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -292,8 +292,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -301,8 +301,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -310,8 +310,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -360,8 +360,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -369,8 +369,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -378,8 +378,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -389,8 +389,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -398,8 +398,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -407,8 +407,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -457,8 +457,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -466,8 +466,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -475,8 +475,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -486,8 +486,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -495,8 +495,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -504,8 +504,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -554,8 +554,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -563,8 +563,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -572,8 +572,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -583,8 +583,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -592,8 +592,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -601,8 +601,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -651,8 +651,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -660,8 +660,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -669,8 +669,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -680,8 +680,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -689,8 +689,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -698,8 +698,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -748,8 +748,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -757,8 +757,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -766,8 +766,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -777,8 +777,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -786,8 +786,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -795,8 +795,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -845,8 +845,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -854,8 +854,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -863,8 +863,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -874,8 +874,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -883,8 +883,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -892,8 +892,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -942,8 +942,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -951,8 +951,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -960,8 +960,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -971,8 +971,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -980,8 +980,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -989,8 +989,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1039,8 +1039,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1048,8 +1048,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1057,8 +1057,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1068,8 +1068,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1077,8 +1077,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1086,8 +1086,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1136,8 +1136,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1145,8 +1145,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1154,8 +1154,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1165,8 +1165,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1174,8 +1174,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1183,8 +1183,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1233,8 +1233,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1242,8 +1242,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1251,8 +1251,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1262,8 +1262,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1271,8 +1271,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1280,8 +1280,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1330,8 +1330,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1339,8 +1339,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1348,8 +1348,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1359,8 +1359,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1368,8 +1368,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1377,8 +1377,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1427,8 +1427,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1436,8 +1436,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1445,8 +1445,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1456,8 +1456,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1465,8 +1465,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1474,8 +1474,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1524,8 +1524,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1533,8 +1533,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1542,8 +1542,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1553,8 +1553,8 @@ Dying on request without maria_commit()/maria_close() applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1562,8 +1562,8 @@ testing idempotency applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= @@ -1571,8 +1571,8 @@ testing applying of CLRs to recreate table applying log Differences in aria_chk -dvv, recovery not yet perfect ! ========DIFF START======= -6c6 -< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled +7c7 +< Status: checked,analyzed,optimized keys,sorted index pages,zerofilled,movable --- > Status: changed ========DIFF END======= From 17b230783f553581788004f9266c78fff635522f Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 13 May 2013 15:46:58 +0200 Subject: [PATCH 146/172] fix test cases --- mysql-test/suite/funcs_1/r/is_columns_is_embedded.result | 4 ++-- mysql-test/suite/funcs_1/r/processlist_priv_ps.result | 4 ++-- mysql-test/suite/funcs_1/r/processlist_val_ps.result | 2 +- .../suite/sys_vars/t/innodb_buffer_pool_evict_basic.test | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/mysql-test/suite/funcs_1/r/is_columns_is_embedded.result b/mysql-test/suite/funcs_1/r/is_columns_is_embedded.result index 61b98480d4f..323e5fea518 100644 --- a/mysql-test/suite/funcs_1/r/is_columns_is_embedded.result +++ b/mysql-test/suite/funcs_1/r/is_columns_is_embedded.result @@ -231,7 +231,7 @@ def information_schema PROCESSLIST STAGE 10 0 NO tinyint NULL NULL 3 0 NULL NULL def information_schema PROCESSLIST STATE 7 NULL YES varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) def information_schema PROCESSLIST TIME 6 0 NO int NULL NULL 10 0 NULL NULL NULL int(7) def information_schema PROCESSLIST TIME_MS 9 0.000 NO decimal NULL NULL 22 3 NULL NULL NULL decimal(22,3) -def information_schema PROCESSLIST USER 2 NO varchar 16 48 NULL NULL NULL utf8 utf8_general_ci varchar(16) +def information_schema PROCESSLIST USER 2 NO varchar 128 384 NULL NULL NULL utf8 utf8_general_ci varchar(128) def information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_CATALOG 1 NO varchar 512 1536 NULL NULL NULL utf8 utf8_general_ci varchar(512) def information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) def information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL NULL utf8 utf8_general_ci varchar(64) @@ -693,7 +693,7 @@ NULL information_schema PARTITIONS CHECKSUM bigint NULL NULL NULL NULL bigint(21 3.0000 information_schema PLUGINS PLUGIN_MATURITY varchar 12 36 utf8 utf8_general_ci varchar(12) 3.0000 information_schema PLUGINS PLUGIN_AUTH_VERSION varchar 80 240 utf8 utf8_general_ci varchar(80) NULL information_schema PROCESSLIST ID bigint NULL NULL NULL NULL bigint(4) -3.0000 information_schema PROCESSLIST USER varchar 16 48 utf8 utf8_general_ci varchar(16) +3.0000 information_schema PROCESSLIST USER varchar 128 384 utf8 utf8_general_ci varchar(128) 3.0000 information_schema PROCESSLIST HOST varchar 64 192 utf8 utf8_general_ci varchar(64) 3.0000 information_schema PROCESSLIST DB varchar 64 192 utf8 utf8_general_ci varchar(64) 3.0000 information_schema PROCESSLIST COMMAND varchar 16 48 utf8 utf8_general_ci varchar(16) diff --git a/mysql-test/suite/funcs_1/r/processlist_priv_ps.result b/mysql-test/suite/funcs_1/r/processlist_priv_ps.result index 421636f3d92..52ed7a4d0ac 100644 --- a/mysql-test/suite/funcs_1/r/processlist_priv_ps.result +++ b/mysql-test/suite/funcs_1/r/processlist_priv_ps.result @@ -23,7 +23,7 @@ SHOW CREATE TABLE processlist; Table Create Table PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` ( `ID` bigint(4) NOT NULL DEFAULT '0', - `USER` varchar(16) NOT NULL DEFAULT '', + `USER` varchar(128) NOT NULL DEFAULT '', `HOST` varchar(64) NOT NULL DEFAULT '', `DB` varchar(64) DEFAULT NULL, `COMMAND` varchar(16) NOT NULL DEFAULT '', @@ -96,7 +96,7 @@ SHOW CREATE TABLE processlist; Table Create Table PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` ( `ID` bigint(4) NOT NULL DEFAULT '0', - `USER` varchar(16) NOT NULL DEFAULT '', + `USER` varchar(128) NOT NULL DEFAULT '', `HOST` varchar(64) NOT NULL DEFAULT '', `DB` varchar(64) DEFAULT NULL, `COMMAND` varchar(16) NOT NULL DEFAULT '', diff --git a/mysql-test/suite/funcs_1/r/processlist_val_ps.result b/mysql-test/suite/funcs_1/r/processlist_val_ps.result index b64afa84279..c3112bc573c 100644 --- a/mysql-test/suite/funcs_1/r/processlist_val_ps.result +++ b/mysql-test/suite/funcs_1/r/processlist_val_ps.result @@ -13,7 +13,7 @@ SHOW CREATE TABLE INFORMATION_SCHEMA.PROCESSLIST; Table Create Table PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` ( `ID` bigint(4) NOT NULL DEFAULT '0', - `USER` varchar(16) NOT NULL DEFAULT '', + `USER` varchar(128) NOT NULL DEFAULT '', `HOST` varchar(64) NOT NULL DEFAULT '', `DB` varchar(64) DEFAULT NULL, `COMMAND` varchar(16) NOT NULL DEFAULT '', diff --git a/mysql-test/suite/sys_vars/t/innodb_buffer_pool_evict_basic.test b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_evict_basic.test index 564a48d9473..ce42f64395f 100644 --- a/mysql-test/suite/sys_vars/t/innodb_buffer_pool_evict_basic.test +++ b/mysql-test/suite/sys_vars/t/innodb_buffer_pool_evict_basic.test @@ -2,9 +2,9 @@ # This is a debug variable for now -- source include/have_debug.inc -if (`select plugin_auth_version <= "5.5.31-MariaDB-30.1" from information_schema.plugins where plugin_name='innodb'`) +if (`select plugin_auth_version <= "5.5.31-MariaDB-30.2" from information_schema.plugins where plugin_name='innodb'`) { - --skip Not fixed in XtraDB 5.5.31-MariaDB-30.1 or earlier + --skip Not fixed in XtraDB 5.5.31-MariaDB-30.2 or earlier } SELECT @@global.innodb_buffer_pool_evict; From 76421547255bb7c1f9a539bc810c8cd2f9ccc525 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 13 May 2013 15:49:27 +0200 Subject: [PATCH 147/172] MDEV-4199 Installing postfix on CentOS 5.9 requires MariaDB-server to match distribution packages better: remove "mysql" from server.rpm Provides, add it to the shared.rpm Provides. fake provides that "mysql" and "mysql-libs" packages would've had. cleanup: remove auto-generated provides from the manual provides list. --- cmake/cpack_rpm.cmake | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/cmake/cpack_rpm.cmake b/cmake/cpack_rpm.cmake index ee7c4af7155..ee800fca4e4 100644 --- a/cmake/cpack_rpm.cmake +++ b/cmake/cpack_rpm.cmake @@ -95,7 +95,7 @@ SET(CPACK_RPM_devel_USER_FILELIST ${ignored}) SET(CPACK_RPM_test_USER_FILELIST ${ignored}) SET(CPACK_RPM_client_PACKAGE_OBSOLETES "mysql-client MySQL-client MySQL-OurDelta-client") -SET(CPACK_RPM_client_PACKAGE_PROVIDES "MariaDB-client MySQL-client mysql-client") +SET(CPACK_RPM_client_PACKAGE_PROVIDES "MySQL-client mysql-client") # this is a workaround for CPackRPM.cmake (as of 2.8.8) bug. # If a package group does not specify OBSOLETES/REQUIRES the values of the @@ -104,22 +104,40 @@ SET(CPACK_RPM_common_PACKAGE_OBSOLETES "MySQL-common") SET(CPACK_RPM_common_PACKAGE_PROVIDES "MariaDB-common") SET(CPACK_RPM_devel_PACKAGE_OBSOLETES "mysql-devel MySQL-devel MySQL-OurDelta-devel") -SET(CPACK_RPM_devel_PACKAGE_PROVIDES "MariaDB-devel MySQL-devel mysql-devel") +SET(CPACK_RPM_devel_PACKAGE_PROVIDES "MySQL-devel mysql-devel") -SET(CPACK_RPM_server_PACKAGE_OBSOLETES "MariaDB mysql mysql-server MySQL-server MySQL-OurDelta-server") -SET(CPACK_RPM_server_PACKAGE_PROVIDES "MariaDB MariaDB-server MySQL-server config(MariaDB-server) msqlormysql mysql mysql(x86-32) mysql(x86-64) mysql-server") +SET(CPACK_RPM_server_PACKAGE_OBSOLETES "MariaDB MySQL mysql-server MySQL-server MySQL-OurDelta-server") +SET(CPACK_RPM_server_PACKAGE_PROVIDES "MariaDB MySQL MySQL-server msqlormysql mysql-server") SET(CPACK_RPM_server_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-prein.sh) SET(CPACK_RPM_server_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-preun.sh) SET(CPACK_RPM_server_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postin.sh) SET(CPACK_RPM_server_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postun.sh) SET(CPACK_RPM_shared_PACKAGE_OBSOLETES "mysql-shared MySQL-shared-standard MySQL-shared-pro MySQL-shared-pro-cert MySQL-shared-pro-gpl MySQL-shared-pro-gpl-cert MySQL-shared MySQL-OurDelta-shared mysql-libs") -SET(CPACK_RPM_shared_PACKAGE_PROVIDES "MariaDB-shared MySQL-shared mysql-shared libmysqlclient.so.18 libmysqlclient.so.18(libmysqlclient_16) libmysqlclient.so.18(libmysqlclient_18) libmysqlclient_r.so.18 libmysqlclient_r.so.18(libmysqlclient_18) mysql-libs") +SET(CPACK_RPM_shared_PACKAGE_PROVIDES "MySQL-shared mysql-shared") + SET(CPACK_RPM_shared_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh) SET(CPACK_RPM_shared_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh) SET(CPACK_RPM_test_PACKAGE_OBSOLETES "mysql-test MySQL-test MySQL-OurDelta-test") -SET(CPACK_RPM_test_PACKAGE_PROVIDES "MariaDB-test MySQL-test mysql-test") +SET(CPACK_RPM_test_PACKAGE_PROVIDES "MySQL-test mysql-test") + +# Argh! Different distributions call packages differently, to be a drop-in replacement +# we have to fake distribution-speficic dependencies +MACRO(ALTERNATIVE_NAME real alt) + SET(p "CPACK_RPM_${real}_PACKAGE_PROVIDES") + SET(${p} "${${p}} ${alt} ${alt}(x86-32) ${alt}(x86-64) config(${alt})") +ENDMACRO(ALTERNATIVE_NAME) + +IF(RPM MATCHES "(rhel|centos)5") + ALTERNATIVE_NAME("shared" "mysql") +ELSEIF(RPM MATCHES "(rhel|centos)6") + ALTERNATIVE_NAME("client" "mysql") + ALTERNATIVE_NAME("shared" "mysql-libs") +ELSEIF(RPM MATCHES "fedora") + ALTERNATIVE_NAME("client" "mysql") + ALTERNATIVE_NAME("shared" "mysql-libs") +ENDIF() # workaround for lots of perl dependencies added by rpmbuild SET(CPACK_RPM_test_PACKAGE_PROVIDES "${CPACK_RPM_test_PACKAGE_PROVIDES} perl(lib::mtr_gcov.pl) perl(lib::mtr_gprof.pl) perl(lib::mtr_io.pl) perl(lib::mtr_misc.pl) perl(lib::mtr_process.pl) perl(lib::v1/mtr_cases.pl) perl(lib::v1/mtr_gcov.pl) perl(lib::v1/mtr_gprof.pl) perl(lib::v1/mtr_im.pl) perl(lib::v1/mtr_io.pl) perl(lib::v1/mtr_match.pl) perl(lib::v1/mtr_misc.pl) perl(lib::v1/mtr_process.pl) perl(lib::v1/mtr_report.pl) perl(lib::v1/mtr_stress.pl) perl(lib::v1/mtr_timer.pl) perl(lib::v1/mtr_unique.pl) perl(mtr_cases) perl(mtr_io.pl) perl(mtr_match) perl(mtr_misc.pl) perl(mtr_report) perl(mtr_results) perl(mtr_unique)") From 3aa50f64bb129ed38cd16031ec40ae1fe3082ee4 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 13 May 2013 15:49:48 +0200 Subject: [PATCH 148/172] MDEV-4505 Buffer overrun when processing --log-bin parameter without file name because --log-bin sets opt_bin_logname to "" (same for any OPT_ARG GET_STR (or GET_STR_ALLOC) option) --- sql/mysqld.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index d612d920ad4..d743be03c1a 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -4253,11 +4253,13 @@ will be ignored as the --log-bin option is not defined."); } #endif + DBUG_ASSERT(!opt_bin_log || opt_bin_logname); + if (opt_bin_log) { /* Reports an error and aborts, if the --log-bin's path is a directory.*/ - if (opt_bin_logname && + if (opt_bin_logname[0] && opt_bin_logname[strlen(opt_bin_logname) - 1] == FN_LIBCHAR) { sql_print_error("Path '%s' is a directory name, please specify \ @@ -4279,7 +4281,7 @@ a file name for --log-bin-index option", opt_binlog_index_name); char buf[FN_REFLEN]; const char *ln; ln= mysql_bin_log.generate_name(opt_bin_logname, "-bin", 1, buf); - if (!opt_bin_logname && !opt_binlog_index_name) + if (!opt_bin_logname[0] && !opt_binlog_index_name) { /* User didn't give us info to name the binlog index file. From 66cc6196092b44447f64ef32b90febc748cb81ee Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 13 May 2013 16:11:39 +0200 Subject: [PATCH 149/172] MDEV-4514 After increasing user name length mysql.db is reported broken and event scheduler does not start --- mysql-test/r/grant_4332.result | 3 +-- mysql-test/t/grant_4332.test | 7 ++++--- sql/sql_acl.cc | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mysql-test/r/grant_4332.result b/mysql-test/r/grant_4332.result index f0286173b4c..ef92b62ab32 100644 --- a/mysql-test/r/grant_4332.result +++ b/mysql-test/r/grant_4332.result @@ -1,4 +1,3 @@ -set global event_scheduler = on; select user(); Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def user() 253 77 14 N 1 31 8 @@ -13,7 +12,7 @@ alter table mysql.columns_priv modify User char(80) binary not null default ''; alter table mysql.procs_priv modify User char(80) binary not null default ''; alter table mysql.proc modify definer char(141) collate utf8_bin not null default ''; alter table mysql.event modify definer char(141) collate utf8_bin not null default ''; -flush privileges; +set global event_scheduler = on; select user(); Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def user() 253 141 14 N 1 31 8 diff --git a/mysql-test/t/grant_4332.test b/mysql-test/t/grant_4332.test index 4d8d769680d..f77d3be350f 100644 --- a/mysql-test/t/grant_4332.test +++ b/mysql-test/t/grant_4332.test @@ -8,8 +8,6 @@ --source include/not_embedded.inc -set global event_scheduler = on; - --enable_metadata select user(); --disable_metadata @@ -24,7 +22,10 @@ alter table mysql.columns_priv modify User char(80) binary not null default ''; alter table mysql.procs_priv modify User char(80) binary not null default ''; alter table mysql.proc modify definer char(141) collate utf8_bin not null default ''; alter table mysql.event modify definer char(141) collate utf8_bin not null default ''; -flush privileges; + +--source include/restart_mysqld.inc + +set global event_scheduler = on; --enable_metadata select user(); diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index d331c4b00ea..a7b840beb03 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -70,7 +70,7 @@ TABLE_FIELD_TYPE mysql_db_table_fields[MYSQL_DB_FIELD_COUNT] = { }, { { C_STRING_WITH_LEN("User") }, - { C_STRING_WITH_LEN("char(16)") }, + { C_STRING_WITH_LEN("char(") }, {NULL, 0} }, { From 97463576ad78b02269c9e2ba633220b21ad45547 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 14 May 2013 14:49:52 +0200 Subject: [PATCH 150/172] Fix test failure in plugins.unix_socket when running tests as user root. (The problem is that if $USER is root, then the authentication will log in with the mysqld user root. And then CURRENT_USER() returns a valid user, giving .result file difference). --- mysql-test/suite/plugins/t/unix_socket.test | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mysql-test/suite/plugins/t/unix_socket.test b/mysql-test/suite/plugins/t/unix_socket.test index fc2e6c5b3c6..72106fab46d 100644 --- a/mysql-test/suite/plugins/t/unix_socket.test +++ b/mysql-test/suite/plugins/t/unix_socket.test @@ -1,4 +1,7 @@ --source include/not_embedded.inc +# If we run this as root, $USER gets authenticated as the `root' user, and we +# get .result differences from CURRENT_USER(). +--source include/not_as_root.inc if (!$AUTH_SOCKET_SO) { skip No auth_socket plugin; From d0265a632fbcd5f4bbf48c290d06498746e3d02c Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Tue, 14 May 2013 18:32:16 +0300 Subject: [PATCH 151/172] When one does 'REPAIR TABLE', update uuid() to the current system mysql-test/suite/maria/maria-autozerofill.result: Updated result mysql-test/suite/maria/maria-autozerofill.test: Added test that zerofilled table should not give any warnings when table is used mysql-test/suite/maria/maria-recovery2.result: More tests to make it easier to find bugs mysql-test/suite/maria/maria-recovery2.test: More tests to make it easier to find bugs storage/maria/ha_maria.cc: Set create_trid after repair (needed if table was moved from another system) Set uuid after repair (needed if table was moved from another system) storage/maria/maria_chk.c: Reset share->state.create_trid if we reset share->state.create_rename_lsn. Make the table moveable --- .../suite/maria/maria-autozerofill.result | 13 ++++++++++ .../suite/maria/maria-autozerofill.test | 25 +++++++++++++------ mysql-test/suite/maria/maria-recovery2.result | 6 +++++ mysql-test/suite/maria/maria-recovery2.test | 2 ++ storage/maria/ha_maria.cc | 9 +++++++ storage/maria/maria_chk.c | 3 +++ 6 files changed, 51 insertions(+), 7 deletions(-) diff --git a/mysql-test/suite/maria/maria-autozerofill.result b/mysql-test/suite/maria/maria-autozerofill.result index 22856fe54b0..ef9e2f77345 100644 --- a/mysql-test/suite/maria/maria-autozerofill.result +++ b/mysql-test/suite/maria/maria-autozerofill.result @@ -12,6 +12,8 @@ create table t4 (a int) engine=aria; INSERT INTO t4 VALUES (1),(2); create table t5 (a int) engine=aria; INSERT INTO t5 VALUES (1),(2); +create table t6 (a int) engine=aria; +INSERT INTO t6 VALUES (1),(2); flush tables; create_rename_lsn has non-magic value * shut down mysqld, removed logs, restarted it @@ -25,6 +27,10 @@ Status: changed,sorted index pages,zerofilled insert into t1 values(2); flush table t1; create_rename_lsn has non-magic value +# +# BUG#44422 "mysql_upgrade destroys Maria tables?" +# Check repair and optimize of moved table +# check table t2; Table Op Msg_type Msg_text mysqltest.t2 check error Table is from another system and must be zerofilled or repaired to be usable on this system @@ -59,4 +65,11 @@ mysqltest.t5 repair status OK check table t5; Table Op Msg_type Msg_text mysqltest.t5 check status OK +select * from t6; +a +1 +2 +check table t6; +Table Op Msg_type Msg_text +mysqltest.t6 check status OK drop database mysqltest; diff --git a/mysql-test/suite/maria/maria-autozerofill.test b/mysql-test/suite/maria/maria-autozerofill.test index 9bb2782105a..e56f71d2c5f 100644 --- a/mysql-test/suite/maria/maria-autozerofill.test +++ b/mysql-test/suite/maria/maria-autozerofill.test @@ -33,11 +33,13 @@ create table t4 (a int) engine=aria; INSERT INTO t4 VALUES (1),(2); create table t5 (a int) engine=aria; INSERT INTO t5 VALUES (1),(2); +create table t6 (a int) engine=aria; +INSERT INTO t6 VALUES (1),(2); flush tables; # Check that table is not zerofilled, not movable let $MYSQLD_DATADIR= `select @@datadir`; ---exec $MARIA_CHK -dv $MYSQLD_DATADIR/mysqltest/t1 >$MYSQLTEST_VARDIR/tmp/ariachk.txt +--exec $MARIA_CHK -dv --ignore-control-file $MYSQLD_DATADIR/mysqltest/t1 >$MYSQLTEST_VARDIR/tmp/ariachk.txt perl; use strict; use warnings; @@ -62,7 +64,7 @@ enable_ps_protocol; flush table t1; # Check that table is auto-zerofilled, movable ---exec $MARIA_CHK -dv $MYSQLD_DATADIR/mysqltest/t1 >$MYSQLTEST_VARDIR/tmp/ariachk.txt +--exec $MARIA_CHK -dv --ignore-control-file $MYSQLD_DATADIR/mysqltest/t1 >$MYSQLTEST_VARDIR/tmp/ariachk.txt perl; use strict; use warnings; @@ -79,7 +81,7 @@ insert into t1 values(2); flush table t1; # Check that table is not zerofilled, not movable ---exec $MARIA_CHK -dv $MYSQLD_DATADIR/mysqltest/t1 >$MYSQLTEST_VARDIR/tmp/ariachk.txt +--exec $MARIA_CHK -dv --ignore-control-file $MYSQLD_DATADIR/mysqltest/t1 >$MYSQLTEST_VARDIR/tmp/ariachk.txt perl; use strict; use warnings; @@ -91,10 +93,13 @@ perl; close FILE; EOF -# -# BUG#44422 "mysql_upgrade destroys Maria tables?" -# Check repair and optimize of moved table -# +--echo # +--echo # BUG#44422 "mysql_upgrade destroys Maria tables?" +--echo # Check repair and optimize of moved table +--echo # + +# Table t2 is regarded as it would be from another server as we removed +# the aria control file earlier check table t2; check table t2; repair table t2; @@ -108,4 +113,10 @@ check table t5; repair table t5; check table t5; +# Check that if we zerofill with aria_chk, we should not get any warnings when +# accessing the table +--exec $MARIA_CHK --zerofill $MYSQLD_DATADIR/mysqltest/t6 >$MYSQLTEST_VARDIR/tmp/ariachk.txt +select * from t6; +check table t6; + drop database mysqltest; diff --git a/mysql-test/suite/maria/maria-recovery2.result b/mysql-test/suite/maria/maria-recovery2.result index 149ce5a01af..1dcb476af42 100644 --- a/mysql-test/suite/maria/maria-recovery2.result +++ b/mysql-test/suite/maria/maria-recovery2.result @@ -107,6 +107,9 @@ flush table t1; * copied t1 for comparison lock tables t1 write, t2 read; delete from t1 limit 1; +select count(*) from t1; +count(*) +0 insert into t1 select * from t2; SET SESSION debug_dbug="+d,maria_flush_whole_log,maria_flush_whole_page_cache,maria_crash"; * crashing mysqld intentionally @@ -123,6 +126,9 @@ use mysqltest; show keys from t1; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment t1 1 a 1 a A 1 NULL NULL YES BTREE +select count(*) from t1; +count(*) +1 drop table t1; * TEST of recovery when OPTIMIZE has replaced the index file and crash create table t_corrupted1 (a varchar(100), key(a)) engine=aria; diff --git a/mysql-test/suite/maria/maria-recovery2.test b/mysql-test/suite/maria/maria-recovery2.test index 8d27d9aaaac..21944026cf6 100644 --- a/mysql-test/suite/maria/maria-recovery2.test +++ b/mysql-test/suite/maria/maria-recovery2.test @@ -130,9 +130,11 @@ insert into t1 values(30); lock tables t1 write, t2 read; delete from t1 limit 1; # 127 rows in t2, >100, so this will use repair-at-end +select count(*) from t1; insert into t1 select * from t2; -- source include/maria_verify_recovery.inc show keys from t1; # should be enabled +select count(*) from t1; drop table t1; --echo * TEST of recovery when OPTIMIZE has replaced the index file and crash diff --git a/storage/maria/ha_maria.cc b/storage/maria/ha_maria.cc index d050a65a1cb..722fb059d5f 100644 --- a/storage/maria/ha_maria.cc +++ b/storage/maria/ha_maria.cc @@ -1668,6 +1668,11 @@ int ha_maria::repair(THD *thd, HA_CHECK *param, bool do_optimize) } } thd_proc_info(thd, "Saving state"); + if (optimize_done && !error && !(param->testflag & T_NO_CREATE_RENAME_LSN)) + { + /* Set trid (needed if the table was moved from another system) */ + share->state.create_trid= trnman_get_min_safe_trid(); + } mysql_mutex_lock(&share->intern_lock); if (!error) { @@ -1683,6 +1688,7 @@ int ha_maria::repair(THD *thd, HA_CHECK *param, bool do_optimize) */ if (file->state != &share->state.state) *file->state= share->state.state; + if (share->base.auto_key) _ma_update_auto_increment_key(param, file, 1); if (optimize_done) @@ -1690,6 +1696,9 @@ int ha_maria::repair(THD *thd, HA_CHECK *param, bool do_optimize) UPDATE_TIME | UPDATE_OPEN_COUNT | (local_testflag & T_STATISTICS ? UPDATE_STAT : 0)); + /* File is repaired; Mark the file as moved to this system */ + (void) _ma_set_uuid(share, 0); + info(HA_STATUS_NO_LOCK | HA_STATUS_TIME | HA_STATUS_VARIABLE | HA_STATUS_CONST); if (rows != file->state->records && !(param->testflag & T_VERY_SILENT)) diff --git a/storage/maria/maria_chk.c b/storage/maria/maria_chk.c index 7379af10c03..05a5aefb4f4 100644 --- a/storage/maria/maria_chk.c +++ b/storage/maria/maria_chk.c @@ -1205,8 +1205,11 @@ static int maria_chk(HA_CHECK *param, char *filename) ((param->testflag & (T_REP_ANY | T_SORT_RECORDS | T_SORT_INDEX | T_ZEROFILL | T_ZEROFILL_KEEP_LSN)) != (T_ZEROFILL | T_ZEROFILL_KEEP_LSN))) + { share->state.create_rename_lsn= share->state.is_of_horizon= share->state.skip_redo_lsn= LSN_NEEDS_NEW_STATE_LSNS; + share->state.create_trid= 0; + } } if (!error && (param->testflag & T_REP_ANY)) { From c2ee0218baf3e560b93c8dffa20ae377e303bc13 Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Wed, 15 May 2013 02:33:29 +0500 Subject: [PATCH 152/172] MDEV-4521 MBRContains, MBRWithin no longer work with geometries of different type. get_mm_leaf function can store all sorts of spatial features in one type of field it receives from an Item_field. So we just allow that by setting the type of this field to GEOMETRY. per-file comments: mysql-test/r/gis-rtree.result result updated mysql-test/t/gis-rtree.test test case added. sql/opt_range.cc set geom_type=GEOMETRY if we got Field_geom. --- mysql-test/r/gis-rtree.result | 20 ++++++++++++++++++++ mysql-test/t/gis-rtree.test | 20 ++++++++++++++++++++ sql/opt_range.cc | 8 ++++++++ 3 files changed, 48 insertions(+) diff --git a/mysql-test/r/gis-rtree.result b/mysql-test/r/gis-rtree.result index c394aec8851..22c30479125 100644 --- a/mysql-test/r/gis-rtree.result +++ b/mysql-test/r/gis-rtree.result @@ -1576,3 +1576,23 @@ a ASTEXT(b) 0 POINT(1 1) DROP TABLE t1; End of 5.1 tests +CREATE TABLE t1 ( +l LINESTRING NOT NULL, +SPATIAL KEY(l) +) ENGINE = myisam; +INSERT INTO t1 VALUES(GeomFromText('LINESTRING(0 0, 1 1)')); +INSERT INTO t1 VALUES(GeomFromText('LINESTRING(1 1, 2 2)')); +INSERT INTO t1 VALUES(GeomFromText('LINESTRING(2 2, 3 3)')); +SELECT COUNT(*) FROM t1 IGNORE INDEX(l) WHERE MBRContains(l, GEOMFROMTEXT('POINT(0 0)')); +COUNT(*) +1 +SELECT COUNT(*) FROM t1 IGNORE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0 0)'), l); +COUNT(*) +1 +SELECT COUNT(*) FROM t1 FORCE INDEX(l) WHERE MBRContains(l, GEOMFROMTEXT('POINT(0 0)')); +COUNT(*) +1 +SELECT COUNT(*) FROM t1 FORCE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0 0)'), l); +COUNT(*) +1 +DROP TABLE t1; diff --git a/mysql-test/t/gis-rtree.test b/mysql-test/t/gis-rtree.test index 731efe5648e..404f0447f56 100644 --- a/mysql-test/t/gis-rtree.test +++ b/mysql-test/t/gis-rtree.test @@ -956,3 +956,23 @@ SELECT a, ASTEXT(b) FROM t1; DROP TABLE t1; --echo End of 5.1 tests + +# +# MDEV-4521 MBRContains, MBRWithin no longer work with geometries of different type. +# +CREATE TABLE t1 ( + l LINESTRING NOT NULL, + SPATIAL KEY(l) +) ENGINE = myisam; + +INSERT INTO t1 VALUES(GeomFromText('LINESTRING(0 0, 1 1)')); +INSERT INTO t1 VALUES(GeomFromText('LINESTRING(1 1, 2 2)')); +INSERT INTO t1 VALUES(GeomFromText('LINESTRING(2 2, 3 3)')); + +SELECT COUNT(*) FROM t1 IGNORE INDEX(l) WHERE MBRContains(l, GEOMFROMTEXT('POINT(0 0)')); +SELECT COUNT(*) FROM t1 IGNORE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0 0)'), l); + +SELECT COUNT(*) FROM t1 FORCE INDEX(l) WHERE MBRContains(l, GEOMFROMTEXT('POINT(0 0)')); +SELECT COUNT(*) FROM t1 FORCE INDEX(l) WHERE MBRWithin(GEOMFROMTEXT('POINT(0 0)'), l); + +DROP TABLE t1; diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 1209e7c9223..5d71ec71903 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -7294,6 +7294,14 @@ static SEL_TREE *get_full_func_mm_tree(RANGE_OPT_PARAM *param, param->current_table); DBUG_ENTER("get_full_func_mm_tree"); +#ifdef HAVE_SPATIAL + if (field_item->field->type() == MYSQL_TYPE_GEOMETRY) + { + /* We have to be able to store all sorts of spatial features here */ + ((Field_geom*) field_item->field)->geom_type= Field::GEOM_GEOMETRY; + } +#endif /*HAVE_SPATIAL*/ + for (uint i= 0; i < cond_func->arg_count; i++) { Item *arg= cond_func->arguments()[i]->real_item(); From 19cb1c4748eab1f658373ad1b3893843ad46e749 Mon Sep 17 00:00:00 2001 From: Alexey Botchkov Date: Wed, 15 May 2013 02:36:37 +0500 Subject: [PATCH 153/172] MDEV-4266 Server upgrade via apt-get install does not work. Now empty 'highlevel' packages strictly depend on the same versions of files. These are mariadb-server, mariadb-client, mariadb-test per-file comments: debian/dist/Debian/control MDEV-4266 Server upgrade via apt-get install does not work. dependencies on the current version added. debian/dist/Ubuntu/control MDEV-4266 Server upgrade via apt-get install does not work. dependencies on the current version added. --- debian/dist/Debian/control | 6 +++--- debian/dist/Ubuntu/control | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/debian/dist/Debian/control b/debian/dist/Debian/control index 95bde727093..9c96313045d 100644 --- a/debian/dist/Debian/control +++ b/debian/dist/Debian/control @@ -204,7 +204,7 @@ Description: MariaDB database server binaries Package: mariadb-server Section: database Architecture: all -Depends: mariadb-server-5.5, ${misc:Depends} +Depends: mariadb-server-5.5 (= ${source:Version}), ${misc:Depends} Description: MariaDB database server (metapackage depending on the latest version) This is an empty package that depends on the current "best" version of mariadb-server (currently mariadb-server-5.5), as determined by the MariaDB @@ -220,7 +220,7 @@ Description: MariaDB database server (metapackage depending on the latest versio Package: mariadb-client Section: database Architecture: all -Depends: mariadb-client-5.5, ${misc:Depends} +Depends: mariadb-client-5.5 (= ${source:Version}), ${misc:Depends} Description: MariaDB database client (metapackage depending on the latest version) This is an empty package that depends on the current "best" version of mariadb-client (currently mariadb-client-5.5), as determined by the MariaDB @@ -230,7 +230,7 @@ Description: MariaDB database client (metapackage depending on the latest versio Package: mariadb-test Section: database Architecture: all -Depends: mariadb-test-5.5 +Depends: mariadb-test-5.5 (= ${source:Version}) Description: MariaDB database regression test suite (metapackage depending on the latest version) This is an empty package that depends on the current "best" version of mariadb-test (currently mariadb-test-5.5), as determined by the MariaDB diff --git a/debian/dist/Ubuntu/control b/debian/dist/Ubuntu/control index 70ef5fd2ecf..d1c4917ed63 100644 --- a/debian/dist/Ubuntu/control +++ b/debian/dist/Ubuntu/control @@ -198,7 +198,7 @@ Description: MariaDB database server binaries Package: mariadb-server Section: database Architecture: all -Depends: mariadb-server-5.5, ${misc:Depends} +Depends: mariadb-server-5.5 (= ${source:Version}), ${misc:Depends} Description: MariaDB database server (metapackage depending on the latest version) This is an empty package that depends on the current "best" version of mariadb-server (currently mariadb-server-5.5), as determined by the MariaDB @@ -214,7 +214,7 @@ Description: MariaDB database server (metapackage depending on the latest versio Package: mariadb-client Section: database Architecture: all -Depends: mariadb-client-5.5, ${misc:Depends} +Depends: mariadb-client-5.5 (= ${source:Version}), ${misc:Depends} Description: MariaDB database client (metapackage depending on the latest version) This is an empty package that depends on the current "best" version of mariadb-client (currently mariadb-client-5.5), as determined by the MariaDB @@ -224,7 +224,7 @@ Description: MariaDB database client (metapackage depending on the latest versio Package: mariadb-test Section: database Architecture: all -Depends: mariadb-test-5.5 +Depends: mariadb-test-5.5 (= ${source:Version}) Description: MariaDB database regression test suite (metapackage depending on the latest version) This is an empty package that depends on the current "best" version of mariadb-test (currently mariadb-test-5.5), as determined by the MariaDB From 0fa7729954c1be9ad20f1a39fc89d3e485a4d9eb Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Wed, 15 May 2013 16:28:12 +0300 Subject: [PATCH 154/172] - Solaris fixes: - Fixed that wait_timeout_func and wait_timeout tests works on solaris - We have to compile without NO_ALARM on Solaris as Solaris doesn't support timeouts on sockets with setsockopt(.. SO_RCVTIMEO). - Fixed that compile-solaris-amd64-debug works (before that we got a wrong ELF class: ELFCLASS64 on linkage) - Fixed some compiler warnings - Fixed some failing tests BUILD/compile-solaris-amd64-debug: Fixed that compile-solaris-amd64-debug works (before that we got a wrong ELF class: ELFCLASS64 on linkage) configure.cmake: We have to compile without NO_ALARM on Solaris as Solaris doesn't support timeouts on sockets with setsockopt(.. SO_RCVTIMEO) mysql-test/suite/parts/t/partition_basic_innodb.test: Mark test as big test (as otherwise we get timeout on our opensolaris machine in buildbot) mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test: Remove warning --- BUILD/FINISH.sh | 3 +-- BUILD/compile-solaris-amd64-debug | 2 +- configure.cmake | 3 +++ mysql-test/suite/parts/t/partition_basic_innodb.test | 2 +- mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test | 2 ++ support-files/compiler_warnings.supp | 2 ++ 6 files changed, 10 insertions(+), 4 deletions(-) diff --git a/BUILD/FINISH.sh b/BUILD/FINISH.sh index e29b6936849..86085fcc593 100644 --- a/BUILD/FINISH.sh +++ b/BUILD/FINISH.sh @@ -42,8 +42,7 @@ path=`dirname $0` if [ -z "$just_clean" ] then commands="$commands -CC=\"$CC\" CFLAGS=\"$cflags\" CXX=\"$CXX\" CXXFLAGS=\"$cxxflags\" CXXLDFLAGS=\"$CXXLDFLAGS\" \ -$configure" +CC=\"$CC\" CFLAGS=\"$cflags\" CXX=\"$CXX\" CXXFLAGS=\"$cxxflags\" CXXLDFLAGS=\"$CXXLDFLAGS\" $configure" fi if [ -z "$just_configure" -a -z "$just_clean" ] diff --git a/BUILD/compile-solaris-amd64-debug b/BUILD/compile-solaris-amd64-debug index 4d6d3f6fce4..770572bd1d7 100755 --- a/BUILD/compile-solaris-amd64-debug +++ b/BUILD/compile-solaris-amd64-debug @@ -20,7 +20,7 @@ path=`dirname $0` extra_flags="$amd64_cflags -D__sun -m64 -mtune=athlon64 $debug_cflags" extra_configs="$amd64_configs $debug_configs $max_configs --with-libevent" -LDFLAGS="-lmtmalloc -R/usr/sfw/lib/64" +LDFLAGS="-m64 -lmtmalloc -R/usr/sfw/lib/64" export LDFLAGS . "$path/FINISH.sh" diff --git a/configure.cmake b/configure.cmake index 05e19509a78..db2779a2bf9 100644 --- a/configure.cmake +++ b/configure.cmake @@ -959,12 +959,15 @@ CHECK_CXX_SOURCE_COMPILES(" # they are silently ignored. For those OS's we will not attempt # to use SO_SNDTIMEO and SO_RCVTIMEO even if it is said to work. # See Bug#29093 for the problem with SO_SND/RCVTIMEO on HP/UX. +# Solaris11 has a similar problem # To use alarm is simple, simply avoid setting anything. IF(WIN32) SET(HAVE_SOCKET_TIMEOUT 1) ELSEIF(CMAKE_SYSTEM MATCHES "HP-UX") SET(HAVE_SOCKET_TIMEOUT 0) +ELSEIF(CMAKE_SYSTEM_NAME MATCHES "SunOS") + SET(HAVE_SOCKET_TIMEOUT 0) ELSEIF(CMAKE_CROSSCOMPILING) SET(HAVE_SOCKET_TIMEOUT 0) ELSE() diff --git a/mysql-test/suite/parts/t/partition_basic_innodb.test b/mysql-test/suite/parts/t/partition_basic_innodb.test index 8240257f087..398f62dab28 100644 --- a/mysql-test/suite/parts/t/partition_basic_innodb.test +++ b/mysql-test/suite/parts/t/partition_basic_innodb.test @@ -22,7 +22,7 @@ # any of the variables. # ---source include/long_test.inc +--source include/big_test.inc #------------------------------------------------------------------------------# # General not engine specific settings and requirements diff --git a/mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test b/mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test index 86ee64b5e73..a97801f9ab0 100644 --- a/mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test +++ b/mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test @@ -67,7 +67,9 @@ stop slave; reset slave; # Table was created from binlog, it may not be created if SQL thread is running # slowly and IO thread reaches incident before SQL thread applies it. +--disable_warnings drop table if exists t; +--enable_warnings reset master; --echo End of the tests diff --git a/support-files/compiler_warnings.supp b/support-files/compiler_warnings.supp index 809369bc436..edccc6e5975 100644 --- a/support-files/compiler_warnings.supp +++ b/support-files/compiler_warnings.supp @@ -47,6 +47,8 @@ btr/btr0cur\.c: null argument where non-null required: 1800-3000 btr/btr0btr\.c: null argument where non-null required: 2500-3000 ibuf/ibuf0ibuf.c: null argument where non-null required: 700-1000 fsp0fsp\.c: result of 32-bit shift implicitly converted to 64 bits +log/log0log\.c : passing arg 1 of `atomic_add_64_nv' from incompatible pointer type +log/log0online\.c : passing arg 1 of `atomic_add_64_nv' from incompatible pointer type # # bdb is not critical to keep up to date From 3ef880cb595084de968c6663b382589edf7f03a8 Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Fri, 17 May 2013 10:16:56 +0400 Subject: [PATCH 155/172] Bug#MDEV-4518 Server crashes in is_white_space when it's run with query cache, charset ucs2 and collation ucs2_unicode_ci @ mysql-test/r/ctype_ucs2_query_cache.result @ mysql-test/t/ctype_ucs2_query_cache-master.opt @ mysql-test/t/ctype_ucs2_query_cache.test Adding tests @ sql/sql_cache.cc Fixing not to use default_character_set->state_map, which can point to a non-ASCII character set (utc2, utf16, utf32) and thus have state_map undefined. --- mysql-test/r/ctype_ucs2_query_cache.result | 19 ++++++++++++++ .../t/ctype_ucs2_query_cache-master.opt | 1 + mysql-test/t/ctype_ucs2_query_cache.test | 19 ++++++++++++++ sql/sql_cache.cc | 25 ++++++++++++++++++- 4 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 mysql-test/r/ctype_ucs2_query_cache.result create mode 100644 mysql-test/t/ctype_ucs2_query_cache-master.opt create mode 100644 mysql-test/t/ctype_ucs2_query_cache.test diff --git a/mysql-test/r/ctype_ucs2_query_cache.result b/mysql-test/r/ctype_ucs2_query_cache.result new file mode 100644 index 00000000000..c5f1ef5918d --- /dev/null +++ b/mysql-test/r/ctype_ucs2_query_cache.result @@ -0,0 +1,19 @@ +# +# Start of 5.5 tests +# +# +# Bug#MDEV-4518 Server crashes in is_white_space when it's run +# with query cache, charset ucs2 and collation ucs2_unicode_ci +# +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3),(4); +SELECT * FROM t1; +a +1 +2 +3 +4 +DROP TABLE t1; +# +# End of 5.5 tests +# diff --git a/mysql-test/t/ctype_ucs2_query_cache-master.opt b/mysql-test/t/ctype_ucs2_query_cache-master.opt new file mode 100644 index 00000000000..413ebb9f898 --- /dev/null +++ b/mysql-test/t/ctype_ucs2_query_cache-master.opt @@ -0,0 +1 @@ +--collation-server=ucs2_unicode_ci --character-set-server=ucs2,latin1 --query-cache-size=1048576 diff --git a/mysql-test/t/ctype_ucs2_query_cache.test b/mysql-test/t/ctype_ucs2_query_cache.test new file mode 100644 index 00000000000..bdc1d079d5e --- /dev/null +++ b/mysql-test/t/ctype_ucs2_query_cache.test @@ -0,0 +1,19 @@ +-- source include/have_query_cache.inc +-- source include/have_ucs2.inc + +--echo # +--echo # Start of 5.5 tests +--echo # + +--echo # +--echo # Bug#MDEV-4518 Server crashes in is_white_space when it's run +--echo # with query cache, charset ucs2 and collation ucs2_unicode_ci +--echo # +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3),(4); +SELECT * FROM t1; +DROP TABLE t1; + +--echo # +--echo # End of 5.5 tests +--echo # diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc index ab08b496dcd..1e5c99822ff 100644 --- a/sql/sql_cache.cc +++ b/sql/sql_cache.cc @@ -466,6 +466,8 @@ static void make_base_query(String *new_query, /* The following is guaranteed by the query_cache interface */ DBUG_ASSERT(query[query_length] == 0); DBUG_ASSERT(!is_white_space(query[0])); + /* We do not support UCS2, UTF16, UTF32 as a client character set */ + DBUG_ASSERT(current_thd->variables.character_set_client->mbminlen == 1); new_query->length(0); // Don't copy anything from old buffer if (new_query->realloc(query_length + additional_length)) @@ -2430,7 +2432,28 @@ void Query_cache::init() m_cache_status= Query_cache::OK; m_requests_in_progress= 0; initialized = 1; - query_state_map= default_charset_info->state_map; + /* + Using state_map from latin1 should be fine in all cases: + 1. We do not support UCS2, UTF16, UTF32 as a client character set. + 2. The other character sets are compatible on the lower ASCII-range + 0x00-0x20, and have the following characters marked as spaces: + + 0x09 TAB + 0x0A LINE FEED + 0x0B VERTICAL TAB + 0x0C FORM FEED + 0x0D CARRIAGE RETUR + 0x20 SPACE + + Additionally, only some of the ASCII-compatible character sets + (including latin1) can have 0xA0 mapped to "NON-BREAK SPACE" + and thus marked as space. + That should not be a problem for those charsets that map 0xA0 + to something else: the parser will just return syntax error + if this character appears straight in the query + (i.e. not inside a string literal or comment). + */ + query_state_map= my_charset_latin1.state_map; /* If we explicitly turn off query cache from the command line query cache will be disabled for the reminder of the server life From cbd300e7b028ab7716a4e02fa2e5067c4d8ee006 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Sun, 19 May 2013 16:22:33 +0200 Subject: [PATCH 156/172] Fix cpack error - safe_process.pl does not exist anymore. --- mysql-test/lib/My/SafeProcess/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql-test/lib/My/SafeProcess/CMakeLists.txt b/mysql-test/lib/My/SafeProcess/CMakeLists.txt index 6edf9d45683..67755a065ea 100644 --- a/mysql-test/lib/My/SafeProcess/CMakeLists.txt +++ b/mysql-test/lib/My/SafeProcess/CMakeLists.txt @@ -26,4 +26,4 @@ ELSE() MYSQL_ADD_EXECUTABLE(my_safe_process safe_process.cc ${INSTALL_ARGS}) ENDIF() -INSTALL(FILES safe_process.pl Base.pm DESTINATION "${INSTALL_MYSQLTESTDIR}/lib/My/SafeProcess" COMPONENT Test) +INSTALL(FILES Base.pm DESTINATION "${INSTALL_MYSQLTESTDIR}/lib/My/SafeProcess" COMPONENT Test) From dc56d56ce578d32e4bfba23f01a644da97c7ccb6 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Sun, 19 May 2013 16:38:56 +0200 Subject: [PATCH 157/172] MDEV-4544 - update MSI to include HeidiSQL 8.0 --- win/packaging/heidisql.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/win/packaging/heidisql.cmake b/win/packaging/heidisql.cmake index f826c9a6633..124f85bb87e 100644 --- a/win/packaging/heidisql.cmake +++ b/win/packaging/heidisql.cmake @@ -1,4 +1,4 @@ -SET(HEIDISQL_BASE_NAME "HeidiSQL_7.0_Portable") +SET(HEIDISQL_BASE_NAME "HeidiSQL_8.0_Portable") SET(HEIDISQL_ZIP "${HEIDISQL_BASE_NAME}.zip") SET(HEIDISQL_URL "http://heidisql.googlecode.com/files/${HEIDISQL_ZIP}") SET(HEIDISQL_DOWNLOAD_DIR ${THIRD_PARTY_DOWNLOAD_LOCATION}/${HEIDISQL_BASE_NAME}) From b67ec975dcc0c4efcce14e8d5b967d8e38540d77 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Sun, 19 May 2013 17:41:22 +0200 Subject: [PATCH 158/172] MDEV-4544 : Update MSI installer to use latest HeidiSQL 8.0 --- win/packaging/heidisql.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/win/packaging/heidisql.cmake b/win/packaging/heidisql.cmake index f826c9a6633..124f85bb87e 100644 --- a/win/packaging/heidisql.cmake +++ b/win/packaging/heidisql.cmake @@ -1,4 +1,4 @@ -SET(HEIDISQL_BASE_NAME "HeidiSQL_7.0_Portable") +SET(HEIDISQL_BASE_NAME "HeidiSQL_8.0_Portable") SET(HEIDISQL_ZIP "${HEIDISQL_BASE_NAME}.zip") SET(HEIDISQL_URL "http://heidisql.googlecode.com/files/${HEIDISQL_ZIP}") SET(HEIDISQL_DOWNLOAD_DIR ${THIRD_PARTY_DOWNLOAD_LOCATION}/${HEIDISQL_BASE_NAME}) From db7085dfae07e8cf4e98e41bd0dc111fb1b4896b Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Sun, 19 May 2013 17:42:30 +0200 Subject: [PATCH 159/172] remove start menu shortcut to upgrade wizard --- win/packaging/extra.wxs.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/win/packaging/extra.wxs.in b/win/packaging/extra.wxs.in index 124de5f4b40..da4ac6aa9ac 100644 --- a/win/packaging/extra.wxs.in +++ b/win/packaging/extra.wxs.in @@ -637,6 +637,7 @@ + From 7e4150d7cd893d8f27276b2304bebb39e909feda Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 20 May 2013 13:41:03 +0200 Subject: [PATCH 160/172] increase MAX_HA (number of simultaneously installed storage engines) to 64 --- sql/handler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/handler.h b/sql/handler.h index af9574d82f8..ac9905a0dc1 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -285,7 +285,7 @@ (yes, the sum is deliberately inaccurate) TODO remove the limit, use dynarrays */ -#define MAX_HA 15 +#define MAX_HA 64 /* Use this instead of 0 as the initial value for the slot number of From 62ab6982a43a99f9da1d4b140111a5db6f377de1 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 20 May 2013 23:58:44 +0200 Subject: [PATCH 161/172] MDEV-388 Creating a federated table with a non-existing server returns a random error code --- mysql-test/suite/federated/federatedx.result | 7 +++++++ mysql-test/suite/federated/federatedx.test | 8 ++++++++ storage/federated/ha_federated.cc | 2 +- storage/federatedx/ha_federatedx.cc | 2 +- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/mysql-test/suite/federated/federatedx.result b/mysql-test/suite/federated/federatedx.result index 2ece1a32b4f..af34af05e7d 100644 --- a/mysql-test/suite/federated/federatedx.result +++ b/mysql-test/suite/federated/federatedx.result @@ -2157,6 +2157,13 @@ DROP TABLE federated.t1; End of 5.1 tests SET @@GLOBAL.CONCURRENT_INSERT= @OLD_MASTER_CONCURRENT_INSERT; SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT; +CREATE TABLE t1 (a INT) ENGINE=FEDERATED CONNECTION='non_existing'; +ERROR HY000: Can't create/write to file 'server name: 'non_existing' doesn't exist!' (Errcode: 16) +SHOW WARNINGS; +Level Code Message +Error 1 Can't create/write to file 'server name: 'non_existing' doesn't exist!' (Errcode: 16) +Error 1 Can't create/write to file 'non_existing' (Errcode: 14) +Error 1005 Can't create table 'test.t1' (errno: 1) DROP TABLE IF EXISTS federated.t1; DROP DATABASE IF EXISTS federated; DROP TABLE IF EXISTS federated.t1; diff --git a/mysql-test/suite/federated/federatedx.test b/mysql-test/suite/federated/federatedx.test index 15fdd47c4da..688893bb856 100644 --- a/mysql-test/suite/federated/federatedx.test +++ b/mysql-test/suite/federated/federatedx.test @@ -1999,4 +1999,12 @@ connection slave; SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT; connection default; + +# +# MDEV-388 Creating a federated table with a non-existing server returns a random error code +# +--error 1 +CREATE TABLE t1 (a INT) ENGINE=FEDERATED CONNECTION='non_existing'; +SHOW WARNINGS; + source include/federated_cleanup.inc; diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc index 55394e859c5..40b8d3d24d9 100644 --- a/storage/federated/ha_federated.cc +++ b/storage/federated/ha_federated.cc @@ -587,7 +587,7 @@ static int parse_url_error(FEDERATED_SHARE *share, TABLE *table, int error_num) buf_len= min(table->s->connect_string.length, FEDERATED_QUERY_BUFFER_SIZE-1); strmake(buf, table->s->connect_string.str, buf_len); - my_error(error_num, MYF(0), buf); + my_error(error_num, MYF(0), buf, 14); DBUG_RETURN(error_num); } diff --git a/storage/federatedx/ha_federatedx.cc b/storage/federatedx/ha_federatedx.cc index eb4d7f11d33..2d6ae6ccc4d 100644 --- a/storage/federatedx/ha_federatedx.cc +++ b/storage/federatedx/ha_federatedx.cc @@ -525,7 +525,7 @@ static int parse_url_error(FEDERATEDX_SHARE *share, TABLE *table, int error_num) buf_len= min(table->s->connect_string.length, FEDERATEDX_QUERY_BUFFER_SIZE-1); strmake(buf, table->s->connect_string.str, buf_len); - my_error(error_num, MYF(0), buf); + my_error(error_num, MYF(0), buf, 14); DBUG_RETURN(error_num); } From fce7fc43ba165cd704889c9d35f92e15288f5730 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 21 May 2013 09:42:10 +0200 Subject: [PATCH 162/172] fixes for buildbot --- mysql-test/r/empty_user_table.result | 2 +- mysql-test/suite/maria/r/distinct.result | 2 +- mysql-test/suite/maria/t/distinct.test | 2 +- mysql-test/t/empty_user_table.test | 4 +++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/empty_user_table.result b/mysql-test/r/empty_user_table.result index df9d803e5c0..b93596ab59a 100644 --- a/mysql-test/r/empty_user_table.result +++ b/mysql-test/r/empty_user_table.result @@ -2,7 +2,7 @@ create table t1 as select * from mysql.user; truncate table mysql.user; flush privileges; connect(localhost,u1,,test,MASTER_PORT,MASTER_SOCKET); -ERROR 28000: Access denied for user 'u1'@'localhost' (using password: NO) +Got one of the listed errors insert mysql.user select * from t1; drop table t1; flush privileges; diff --git a/mysql-test/suite/maria/r/distinct.result b/mysql-test/suite/maria/r/distinct.result index 04d5e3d6a2c..7963e7b72ff 100644 --- a/mysql-test/suite/maria/r/distinct.result +++ b/mysql-test/suite/maria/r/distinct.result @@ -17,7 +17,7 @@ GROUP_CONCAT(a) DROP TABLE t1; CREATE TABLE t1 (a INT, b VARCHAR(1)) ENGINE=MyISAM; INSERT INTO t1 VALUES (7,'q'),(2,NULL),(7,'g'),(6,'x'); -SELECT DISTINCT MAX( a ) FROM t1 GROUP BY b ORDER BY DES_DECRYPT( b ); +SELECT DISTINCT MAX( a ) FROM t1 GROUP BY b ORDER BY MD5( b ); MAX( a ) 2 7 diff --git a/mysql-test/suite/maria/t/distinct.test b/mysql-test/suite/maria/t/distinct.test index b30d97b8383..c71a172597c 100644 --- a/mysql-test/suite/maria/t/distinct.test +++ b/mysql-test/suite/maria/t/distinct.test @@ -21,5 +21,5 @@ DROP TABLE t1; CREATE TABLE t1 (a INT, b VARCHAR(1)) ENGINE=MyISAM; INSERT INTO t1 VALUES (7,'q'),(2,NULL),(7,'g'),(6,'x'); -SELECT DISTINCT MAX( a ) FROM t1 GROUP BY b ORDER BY DES_DECRYPT( b ); +SELECT DISTINCT MAX( a ) FROM t1 GROUP BY b ORDER BY MD5( b ); DROP TABLE t1; diff --git a/mysql-test/t/empty_user_table.test b/mysql-test/t/empty_user_table.test index 7e672cc64f6..b54f2109e30 100644 --- a/mysql-test/t/empty_user_table.test +++ b/mysql-test/t/empty_user_table.test @@ -8,8 +8,10 @@ create table t1 as select * from mysql.user; truncate table mysql.user; flush privileges; +# connecting via unix socket gives ER_ACCESS_DENIED_ERROR +# connecting via tcp/ip gives ER_HOST_NOT_PRIVILEGED --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT ---error ER_ACCESS_DENIED_ERROR +--error ER_ACCESS_DENIED_ERROR,ER_HOST_NOT_PRIVILEGED connect (fail,localhost,u1); insert mysql.user select * from t1; From d6315e29c8a1d6a28f1d61184ff2e907494210e7 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 21 May 2013 13:03:37 +0200 Subject: [PATCH 163/172] MDEV-388 Creating a federated table with a non-existing server returns a random error code (part 2) --- mysql-test/suite/federated/federated.result | 13 +++++++++++++ mysql-test/suite/federated/federated.test | 12 ++++++++++++ mysql-test/suite/federated/federatedx.result | 7 ------- mysql-test/suite/federated/federatedx.test | 7 ------- storage/federatedx/ha_federatedx.cc | 5 ++--- 5 files changed, 27 insertions(+), 17 deletions(-) create mode 100644 mysql-test/suite/federated/federated.result create mode 100644 mysql-test/suite/federated/federated.test diff --git a/mysql-test/suite/federated/federated.result b/mysql-test/suite/federated/federated.result new file mode 100644 index 00000000000..6dcd6b1721b --- /dev/null +++ b/mysql-test/suite/federated/federated.result @@ -0,0 +1,13 @@ +CREATE DATABASE federated; +CREATE DATABASE federated; +CREATE TABLE t1 (a INT) ENGINE=FEDERATED CONNECTION='non_existing'; +ERROR HY000: server name: 'non_existing' doesn't exist! +SHOW WARNINGS; +Level Code Message +Error 1 server name: 'non_existing' doesn't exist! +Error 1 Can't create/write to file 'non_existing' (Errcode: 14) +Error 1005 Can't create table 'test.t1' (errno: 1) +DROP TABLE IF EXISTS federated.t1; +DROP DATABASE IF EXISTS federated; +DROP TABLE IF EXISTS federated.t1; +DROP DATABASE IF EXISTS federated; diff --git a/mysql-test/suite/federated/federated.test b/mysql-test/suite/federated/federated.test new file mode 100644 index 00000000000..ab0cfc4b36c --- /dev/null +++ b/mysql-test/suite/federated/federated.test @@ -0,0 +1,12 @@ +source include/federated.inc; + + +# +# MDEV-388 Creating a federated table with a non-existing server returns a random error code +# +--error 1 +CREATE TABLE t1 (a INT) ENGINE=FEDERATED CONNECTION='non_existing'; +SHOW WARNINGS; + +source include/federated_cleanup.inc; + diff --git a/mysql-test/suite/federated/federatedx.result b/mysql-test/suite/federated/federatedx.result index af34af05e7d..2ece1a32b4f 100644 --- a/mysql-test/suite/federated/federatedx.result +++ b/mysql-test/suite/federated/federatedx.result @@ -2157,13 +2157,6 @@ DROP TABLE federated.t1; End of 5.1 tests SET @@GLOBAL.CONCURRENT_INSERT= @OLD_MASTER_CONCURRENT_INSERT; SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT; -CREATE TABLE t1 (a INT) ENGINE=FEDERATED CONNECTION='non_existing'; -ERROR HY000: Can't create/write to file 'server name: 'non_existing' doesn't exist!' (Errcode: 16) -SHOW WARNINGS; -Level Code Message -Error 1 Can't create/write to file 'server name: 'non_existing' doesn't exist!' (Errcode: 16) -Error 1 Can't create/write to file 'non_existing' (Errcode: 14) -Error 1005 Can't create table 'test.t1' (errno: 1) DROP TABLE IF EXISTS federated.t1; DROP DATABASE IF EXISTS federated; DROP TABLE IF EXISTS federated.t1; diff --git a/mysql-test/suite/federated/federatedx.test b/mysql-test/suite/federated/federatedx.test index 688893bb856..cfe6a425944 100644 --- a/mysql-test/suite/federated/federatedx.test +++ b/mysql-test/suite/federated/federatedx.test @@ -2000,11 +2000,4 @@ SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT; connection default; -# -# MDEV-388 Creating a federated table with a non-existing server returns a random error code -# ---error 1 -CREATE TABLE t1 (a INT) ENGINE=FEDERATED CONNECTION='non_existing'; -SHOW WARNINGS; - source include/federated_cleanup.inc; diff --git a/storage/federatedx/ha_federatedx.cc b/storage/federatedx/ha_federatedx.cc index 2d6ae6ccc4d..aac2414bca1 100644 --- a/storage/federatedx/ha_federatedx.cc +++ b/storage/federatedx/ha_federatedx.cc @@ -585,9 +585,8 @@ int get_connection(MEM_ROOT *mem_root, FEDERATEDX_SHARE *share) DBUG_RETURN(0); error: - sprintf(error_buffer, "server name: '%s' doesn't exist!", - share->connection_string); - my_error(error_num, MYF(0), error_buffer); + my_printf_error(error_num, "server name: '%s' doesn't exist!", + MYF(0), share->connection_string); DBUG_RETURN(error_num); } From cb246b20d6e0dad16797b9e09bef6f0431b88d37 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 21 May 2013 18:56:35 +0200 Subject: [PATCH 164/172] fix for compiled-in FederatedX --- mysql-test/suite/federated/federated.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql-test/suite/federated/federated.test b/mysql-test/suite/federated/federated.test index ab0cfc4b36c..88d20817996 100644 --- a/mysql-test/suite/federated/federated.test +++ b/mysql-test/suite/federated/federated.test @@ -1,6 +1,6 @@ source include/federated.inc; - +connection master; # # MDEV-388 Creating a federated table with a non-existing server returns a random error code # From 9bc4c4183df327140b5f477993f10f08282d977f Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 24 May 2013 14:33:04 +0200 Subject: [PATCH 165/172] MDEV-4516 SELECT from I_S.QUERY_CACHE_INFO produces ER_UNKNOWN_ERROR when query cache size is 0 if qc->try_lock() fails, it's not an error --- mysql-test/suite/plugins/r/qc_info.result | 3 +++ mysql-test/suite/plugins/t/qc_info.test | 3 +++ plugin/qc_info/qc_info.cc | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mysql-test/suite/plugins/r/qc_info.result b/mysql-test/suite/plugins/r/qc_info.result index 3e967d55f43..ab646d74511 100644 --- a/mysql-test/suite/plugins/r/qc_info.result +++ b/mysql-test/suite/plugins/r/qc_info.result @@ -12,4 +12,7 @@ test select * from t1 1 512 drop table t1; select statement_schema, statement_text, result_blocks_count, result_blocks_size from information_schema.query_cache_info; statement_schema statement_text result_blocks_count result_blocks_size +set global query_cache_size = 0; +select * from information_schema.query_cache_info; +STATEMENT_SCHEMA STATEMENT_TEXT RESULT_BLOCKS_COUNT RESULT_BLOCKS_SIZE RESULT_BLOCKS_SIZE_USED set global query_cache_size= default; diff --git a/mysql-test/suite/plugins/t/qc_info.test b/mysql-test/suite/plugins/t/qc_info.test index fc6c9d5af3a..a081617c524 100644 --- a/mysql-test/suite/plugins/t/qc_info.test +++ b/mysql-test/suite/plugins/t/qc_info.test @@ -4,5 +4,8 @@ drop table t1; # the query was invalidated select statement_schema, statement_text, result_blocks_count, result_blocks_size from information_schema.query_cache_info; +set global query_cache_size = 0; +select * from information_schema.query_cache_info; + set global query_cache_size= default; diff --git a/plugin/qc_info/qc_info.cc b/plugin/qc_info/qc_info.cc index af13b6edf93..8489b14c5db 100644 --- a/plugin/qc_info/qc_info.cc +++ b/plugin/qc_info/qc_info.cc @@ -83,7 +83,7 @@ static int qc_info_fill_table(THD *thd, TABLE_LIST *tables, return 0; if (qc->try_lock(thd)) - return status; + return 0; // QC is or is being disabled /* loop through all queries in the query cache */ for (uint i= 0; i < queries->records; i++) From ef1e767ae37d82bf821bda5062989a05917b7211 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Mon, 27 May 2013 16:35:42 +0200 Subject: [PATCH 166/172] MDEV-4553 - Fixes for compilation under NetBSD. --- include/my_global.h | 2 ++ include/my_pthread.h | 6 +++++- sql/threadpool_unix.cc | 22 ++++++++++++++++++---- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/include/my_global.h b/include/my_global.h index fcfc052d191..981425dc1b1 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -1436,6 +1436,7 @@ static inline char *dlerror(void) #endif /* Provide __func__ macro definition for platforms that miss it. */ +#if !defined (__func__) #if __STDC_VERSION__ < 199901L # if __GNUC__ >= 2 # define __func__ __FUNCTION__ @@ -1453,6 +1454,7 @@ static inline char *dlerror(void) #else # define __func__ "" #endif +#endif /* !defined(__func__) */ #ifndef HAVE_RINT /** diff --git a/include/my_pthread.h b/include/my_pthread.h index 5a921fe0f26..d9aae5f47c9 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -119,7 +119,6 @@ int pthread_cancel(pthread_t thread); #define HAVE_LOCALTIME_R 1 #define _REENTRANT 1 #define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1 -#define PTHREAD_STACK_MIN 65536 #undef SAFE_MUTEX /* This will cause conflicts */ #define pthread_key(T,V) DWORD V @@ -857,6 +856,11 @@ extern uint thd_lib_detected; #define mysql_mutex_record_order(A,B) do { } while(0) #endif +/* At least Windows and NetBSD do not have this definition */ +#ifndef PTHREAD_STACK_MIN +#define PTHREAD_STACK_MIN 65536 +#endif + #ifdef __cplusplus } #endif diff --git a/sql/threadpool_unix.cc b/sql/threadpool_unix.cc index 94251660e37..41fe87e19d3 100644 --- a/sql/threadpool_unix.cc +++ b/sql/threadpool_unix.cc @@ -286,6 +286,20 @@ static void *native_event_get_userdata(native_event *event) } #elif defined(HAVE_KQUEUE) + +/* + NetBSD is incompatible with other BSDs , last parameter in EV_SET macro + (udata, user data) needs to be intptr_t, whereas it needs to be void* + everywhere else. +*/ + +#ifdef __NetBSD__ +#define MY_EV_SET(a, b, c, d, e, f, g) EV_SET(a, b, c, d, e, f, (intptr_t)g) +#else +#define MY_EV_SET(a, b, c, d, e, f, g) EV_SET(a, b, c, d, e, f, g) +#endif + + int io_poll_create() { return kqueue(); @@ -294,7 +308,7 @@ int io_poll_create() int io_poll_start_read(int pollfd, int fd, void *data) { struct kevent ke; - EV_SET(&ke, fd, EVFILT_READ, EV_ADD|EV_ONESHOT, + MY_EV_SET(&ke, fd, EVFILT_READ, EV_ADD|EV_ONESHOT, 0, 0, data); return kevent(pollfd, &ke, 1, 0, 0, 0); } @@ -303,7 +317,7 @@ int io_poll_start_read(int pollfd, int fd, void *data) int io_poll_associate_fd(int pollfd, int fd, void *data) { struct kevent ke; - EV_SET(&ke, fd, EVFILT_READ, EV_ADD|EV_ONESHOT, + MY_EV_SET(&ke, fd, EVFILT_READ, EV_ADD|EV_ONESHOT, 0, 0, data); return io_poll_start_read(pollfd,fd, data); } @@ -312,7 +326,7 @@ int io_poll_associate_fd(int pollfd, int fd, void *data) int io_poll_disassociate_fd(int pollfd, int fd) { struct kevent ke; - EV_SET(&ke,fd, EVFILT_READ, EV_DELETE, 0, 0, NULL); + MY_EV_SET(&ke,fd, EVFILT_READ, EV_DELETE, 0, 0, 0); return kevent(pollfd, &ke, 1, 0, 0, 0); } @@ -337,7 +351,7 @@ int io_poll_wait(int pollfd, struct kevent *events, int maxevents, int timeout_m static void* native_event_get_userdata(native_event *event) { - return event->udata; + return (void *)event->udata; } #elif defined (__sun) From 7ba2ff93ac647c5d3517c6eb79f9f63848c9fed2 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Wed, 22 May 2013 16:44:44 +0200 Subject: [PATCH 167/172] MDEV-4548 - compile sphinx.so/dll and include into packages replaced snippets_udf.cc with the latest version (2.0.8 from sphinxsource.com), fixed trivial errors on Windows. It will be compiled and installed into plugins directory now. --- storage/sphinx/CMakeLists.txt | 9 ++++++ storage/sphinx/snippets_udf.cc | 59 ++++++++++++++++++++++++++-------- 2 files changed, 55 insertions(+), 13 deletions(-) diff --git a/storage/sphinx/CMakeLists.txt b/storage/sphinx/CMakeLists.txt index d9320d10cf7..3e26637218f 100644 --- a/storage/sphinx/CMakeLists.txt +++ b/storage/sphinx/CMakeLists.txt @@ -3,3 +3,12 @@ IF(MSVC) LINK_LIBRARIES(ws2_32) ENDIF(MSVC) MYSQL_ADD_PLUGIN(sphinx ha_sphinx.cc STORAGE_ENGINE) + +IF(NOT WITHOUT_SPHINX_STORAGE_ENGINE) + ADD_LIBRARY(snippets_udf MODULE snippets_udf.cc) + TARGET_LINK_LIBRARIES(snippets_udf mysys) # my_error + ADD_DEPENDENCIES(snippets_udf GenError) # uses generated error constants + SET_TARGET_PROPERTIES(snippets_udf PROPERTIES OUTPUT_NAME sphinx PREFIX "") + INSTALL(TARGETS snippets_udf COMPONENT Server DESTINATION ${INSTALL_PLUGINDIR}) +ENDIF() + diff --git a/storage/sphinx/snippets_udf.cc b/storage/sphinx/snippets_udf.cc index 85fb66ab793..5318592ab5f 100644 --- a/storage/sphinx/snippets_udf.cc +++ b/storage/sphinx/snippets_udf.cc @@ -1,5 +1,5 @@ // -// $Id: snippets_udf.cc 3087 2012-01-30 23:07:35Z shodan $ +// $Id: snippets_udf.cc 3508 2012-11-05 11:48:48Z kevg $ // // @@ -17,12 +17,19 @@ #include #include +#ifndef __WIN__ #include #include +#else +#include +#endif #include -#if MYSQL_VERSION_ID>50100 +#if MYSQL_VERSION_ID>=50515 +#include "sql_class.h" +#include "sql_array.h" +#elif MYSQL_VERSION_ID>50100 #include "mysql_priv.h" #include #else @@ -84,9 +91,9 @@ void sphUnalignedWrite ( void * pPtr, const T & tVal ) #define SafeDeleteArray(_arg) { if ( _arg ) delete [] ( _arg ); (_arg) = NULL; } #define Min(a,b) ((a)<(b)?(a):(b)) - +#ifndef __WIN__ typedef unsigned int DWORD; - +#endif inline DWORD sphF2DW ( float f ) { union { float f; uint32 d; } u; u.f = f; return u.d; } static char * sphDup ( const char * sSrc, int iLen=-1 ) @@ -158,7 +165,7 @@ enum SEARCHD_COMMAND_EXCERPT = 1, - VER_COMMAND_EXCERPT = 0x103, + VER_COMMAND_EXCERPT = 0x104, }; /// known answers @@ -380,23 +387,44 @@ int CSphUrl::Connect() else { int tmp_errno; + bool bError = false; + +#if MYSQL_VERSION_ID>=50515 + struct addrinfo *hp = NULL; + tmp_errno = getaddrinfo ( m_sHost, NULL, NULL, &hp ); + if ( !tmp_errno || !hp || !hp->ai_addr ) + { + bError = true; + if ( hp ) + freeaddrinfo ( hp ); + } +#else struct hostent tmp_hostent, *hp; char buff2 [ GETHOSTBYNAME_BUFF_SIZE ]; - hp = my_gethostbyname_r ( m_sHost, &tmp_hostent, buff2, sizeof(buff2), &tmp_errno ); if ( !hp ) { my_gethostbyname_r_free(); + bError = true; + } +#endif + if ( bError ) + { char sError[256]; - snprintf ( sError, sizeof(sError), "failed to resolve searchd host (name=%s)", m_sHost ); + my_snprintf ( sError, sizeof(sError), "failed to resolve searchd host (name=%s)", m_sHost ); my_error ( ER_CONNECT_TO_FOREIGN_DATA_SOURCE, MYF(0), sError ); return -1; } +#if MYSQL_VERSION_ID>=50515 + memcpy ( &sin.sin_addr, hp->ai_addr, Min ( sizeof(sin.sin_addr), (size_t)hp->ai_addrlen ) ); + freeaddrinfo ( hp ); +#else memcpy ( &sin.sin_addr, hp->h_addr, Min ( sizeof(sin.sin_addr), (size_t)hp->h_length ) ); my_gethostbyname_r_free(); +#endif } } else { @@ -534,12 +562,16 @@ CSphResponse::Read ( int iSocket, int iClientVersion ) } /// udf - +#ifdef _MSC_VER +#define DLLEXPORT __declspec(dllexport) +#else +#define DLLEXPORT +#endif extern "C" { - my_bool sphinx_snippets_init ( UDF_INIT * pUDF, UDF_ARGS * pArgs, char * sMessage ); - void sphinx_snippets_deinit ( UDF_INIT * pUDF ); - char * sphinx_snippets ( UDF_INIT * pUDF, UDF_ARGS * pArgs, char * sResult, unsigned long * pLength, char * pIsNull, char * sError ); + DLLEXPORT my_bool sphinx_snippets_init ( UDF_INIT * pUDF, UDF_ARGS * pArgs, char * sMessage ); + DLLEXPORT void sphinx_snippets_deinit ( UDF_INIT * pUDF ); + DLLEXPORT char * sphinx_snippets ( UDF_INIT * pUDF, UDF_ARGS * pArgs, char * sResult, unsigned long * pLength, char * pIsNull, char * sError ); }; #define MAX_MESSAGE_LENGTH 255 @@ -608,7 +640,7 @@ struct CSphSnippets } #define STRING CHECK_TYPE(STRING_RESULT) -#define INT CHECK_TYPE(INT_RESULT); int iValue = *(long long *)pArgs->args[i] +#define INT CHECK_TYPE(INT_RESULT); int iValue =(int) *(long long *)pArgs->args[i] my_bool sphinx_snippets_init ( UDF_INIT * pUDF, UDF_ARGS * pArgs, char * sMessage ) { @@ -662,6 +694,7 @@ my_bool sphinx_snippets_init ( UDF_INIT * pUDF, UDF_ARGS * pArgs, char * sMessag KEYWORD("load_files") { INT; if ( iValue ) pOpts->m_iFlags |= 128; } KEYWORD("allow_empty") { INT; if ( iValue ) pOpts->m_iFlags |= 256; } KEYWORD("emit_zones") { INT; if ( iValue ) pOpts->m_iFlags |= 512; } + KEYWORD("load_files_scattered") { INT; if ( iValue ) pOpts->m_iFlags |= 1024; } else { snprintf ( sMessage, MAX_MESSAGE_LENGTH, "unrecognized argument: %.*s", @@ -787,5 +820,5 @@ void sphinx_snippets_deinit ( UDF_INIT * pUDF ) } // -// $Id: snippets_udf.cc 3087 2012-01-30 23:07:35Z shodan $ +// $Id: snippets_udf.cc 3508 2012-11-05 11:48:48Z kevg $ // From b9ce8572d91aaaf1c6abcb6a1fa375f1d76bdf94 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 23 May 2013 17:05:31 +0300 Subject: [PATCH 168/172] MDEV-4520: Assertion `0' fails in Query_cache::end_of_result on concurrent drop event and event execution If there is no net.vio then query cache cant't get data via net_real_write() so it is better just do not try to cache such query. --- .../r/init_connection_query_cache.result | 19 ++++++++++++++ .../t/init_connection_query_cache-master.opt | 1 + mysql-test/t/init_connection_query_cache.test | 26 +++++++++++++++++++ sql/sql_cache.cc | 8 +++--- sql/sql_class.cc | 2 +- 5 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 mysql-test/r/init_connection_query_cache.result create mode 100644 mysql-test/t/init_connection_query_cache-master.opt create mode 100644 mysql-test/t/init_connection_query_cache.test diff --git a/mysql-test/r/init_connection_query_cache.result b/mysql-test/r/init_connection_query_cache.result new file mode 100644 index 00000000000..5a1e5c5244f --- /dev/null +++ b/mysql-test/r/init_connection_query_cache.result @@ -0,0 +1,19 @@ +# +# MDEV-4520: Assertion `0' fails in Query_cache::end_of_result on +# concurrent drop event and event execution +# +set GLOBAL query_cache_size=1355776; +create user mysqltest1@localhost; +grant SELECT on test.* to mysqltest1@localhost; +create table t1 (a int); +# This explain put here to be sure that init connection query +# has 'Impossible WHERE'. +explain extended select * from test.t1 where 0; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE +Warnings: +Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where 0 +revoke all privileges, grant option from mysqltest1@localhost; +drop user mysqltest1@localhost; +drop table t1; +set GLOBAL query_cache_size=default; diff --git a/mysql-test/t/init_connection_query_cache-master.opt b/mysql-test/t/init_connection_query_cache-master.opt new file mode 100644 index 00000000000..7bef2af8d35 --- /dev/null +++ b/mysql-test/t/init_connection_query_cache-master.opt @@ -0,0 +1 @@ +--init_connect="select * from test.t1 where 0" diff --git a/mysql-test/t/init_connection_query_cache.test b/mysql-test/t/init_connection_query_cache.test new file mode 100644 index 00000000000..4d83304163e --- /dev/null +++ b/mysql-test/t/init_connection_query_cache.test @@ -0,0 +1,26 @@ +-- source include/have_query_cache.inc + +--echo # +--echo # MDEV-4520: Assertion `0' fails in Query_cache::end_of_result on +--echo # concurrent drop event and event execution +--echo # +set GLOBAL query_cache_size=1355776; + +create user mysqltest1@localhost; +grant SELECT on test.* to mysqltest1@localhost; + +create table t1 (a int); + +connect (con1,localhost,mysqltest1,,); +connection con1; +--echo # This explain put here to be sure that init connection query +--echo # has 'Impossible WHERE'. +explain extended select * from test.t1 where 0; +connection default; +disconnect con1; +revoke all privileges, grant option from mysqltest1@localhost; +drop user mysqltest1@localhost; + +drop table t1; + +set GLOBAL query_cache_size=default; diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc index 1e5c99822ff..10cdadd5d95 100644 --- a/sql/sql_cache.cc +++ b/sql/sql_cache.cc @@ -4000,7 +4000,8 @@ Query_cache::is_cacheable(THD *thd, LEX *lex, if (thd->lex->safe_to_cache_query && (thd->variables.query_cache_type == 1 || (thd->variables.query_cache_type == 2 && (lex->select_lex.options & - OPTION_TO_QUERY_CACHE)))) + OPTION_TO_QUERY_CACHE))) && + thd->net.vio) { DBUG_PRINT("qcache", ("options: %lx %lx type: %u", (long) OPTION_TO_QUERY_CACHE, @@ -4022,11 +4023,12 @@ Query_cache::is_cacheable(THD *thd, LEX *lex, } DBUG_PRINT("qcache", - ("not interesting query: %d or not cacheable, options %lx %lx type: %u", + ("not interesting query: %d or not cacheable, options %lx %lx type: %u net->vio present: %u", (int) lex->sql_command, (long) OPTION_TO_QUERY_CACHE, (long) lex->select_lex.options, - (int) thd->variables.query_cache_type)); + (int) thd->variables.query_cache_type, + (uint) test(thd->net.vio))); DBUG_RETURN(0); } diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 5e0fe8425af..ca17cefff4c 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -4579,7 +4579,7 @@ void xid_cache_delete(XID_STATE *xid_state) int THD::decide_logging_format(TABLE_LIST *tables) { DBUG_ENTER("THD::decide_logging_format"); - DBUG_PRINT("info", ("query: %s", query())); + DBUG_PRINT("info", ("Query: %s", query())); DBUG_PRINT("info", ("variables.binlog_format: %lu", variables.binlog_format)); DBUG_PRINT("info", ("lex->get_stmt_unsafe_flags(): 0x%x", From 1db0c42e535d3cf97543e3bb0855f5283d73f075 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 28 May 2013 21:25:59 +0200 Subject: [PATCH 169/172] followup for revision 3751 "centos5 gcc 4.1 asm bug" remove the workaround from cmake/os/FreeBSD.cmake --- cmake/os/FreeBSD.cmake | 6 ------ 1 file changed, 6 deletions(-) diff --git a/cmake/os/FreeBSD.cmake b/cmake/os/FreeBSD.cmake index 27afe679f25..3a5a29f6de6 100644 --- a/cmake/os/FreeBSD.cmake +++ b/cmake/os/FreeBSD.cmake @@ -32,9 +32,3 @@ IF(EXECINFO) SET(LIBEXECINFO ${EXECINFO}) ENDIF() -# Use atomic builtins -IF(CMAKE_SIZEOF_VOID_P EQUAL 4 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "i386") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=i686") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i686") - SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -march=i686") -ENDIF() From 22b60fa95cf1e33aff4bf7c43934d55e751f8908 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 30 May 2013 08:23:49 +0300 Subject: [PATCH 170/172] MDEV-4520: Assertion `0' fails in Query_cache::end_of_result on concurrent drop event and event executio Fix for embedded library, where thd->net.vio is not set which efficently switched off QC in emmbedded server for previous patch. --- sql/sql_cache.cc | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc index 10cdadd5d95..086a6f2ff5b 100644 --- a/sql/sql_cache.cc +++ b/sql/sql_cache.cc @@ -3985,6 +3985,18 @@ Query_cache::process_and_count_tables(THD *thd, TABLE_LIST *tables_used, } +/* +In non-embedded QC intercepts result in net_real_write +but if we have no net.vio then net_real_write +will not be called, so QC can't get results of the query +*/ +#ifdef EMBEDDED_LIBRARY +#define qc_is_able_to_intercept_result(T) 1 +#else +#define qc_is_able_to_intercept_result(T) ((T)->net.vio) +#endif + + /* If query is cacheable return number tables in query (query without tables are not cached) @@ -4001,7 +4013,7 @@ Query_cache::is_cacheable(THD *thd, LEX *lex, (thd->variables.query_cache_type == 1 || (thd->variables.query_cache_type == 2 && (lex->select_lex.options & OPTION_TO_QUERY_CACHE))) && - thd->net.vio) + qc_is_able_to_intercept_result(thd)) { DBUG_PRINT("qcache", ("options: %lx %lx type: %u", (long) OPTION_TO_QUERY_CACHE, @@ -4028,7 +4040,7 @@ Query_cache::is_cacheable(THD *thd, LEX *lex, (long) OPTION_TO_QUERY_CACHE, (long) lex->select_lex.options, (int) thd->variables.query_cache_type, - (uint) test(thd->net.vio))); + (uint) test(qc_is_able_to_intercept_result(thd)))); DBUG_RETURN(0); } From 689c1b44a99b9de1cbaf3939efa0c809aa3d4f43 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Sat, 1 Jun 2013 21:30:33 +0200 Subject: [PATCH 171/172] MDEV-4607 : libreadline-related compilation problems on NetBSD. Problem : libreadline.so was already present on the machine, however the cmake check NEW_READLINE_INTERFACE was unsuccessfull indicating, thus bundled library had to be used instead of system library. The problem was that the value for HAVE_HIST_ENTRY cmake variable was cached with incorrect value (1 on NetBSD). The fix is to change HAVE_HIST_ENTRY to 0 with CACHE FORCE, after switching to bundled readline. --- cmake/readline.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/readline.cmake b/cmake/readline.cmake index 285b436921e..c99557683a6 100644 --- a/cmake/readline.cmake +++ b/cmake/readline.cmake @@ -115,7 +115,7 @@ ENDMACRO() MACRO (MYSQL_USE_BUNDLED_READLINE) SET(USE_NEW_READLINE_INTERFACE 1) - SET(HAVE_HIST_ENTRY) + SET(HAVE_HIST_ENTRY 0 CACHE INTERNAL "" FORCE) SET(READLINE_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/cmd-line-utils) SET(READLINE_LIBRARY readline) ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/cmd-line-utils/readline) From 33ef993773449cb3917665b188f6b6575d399bd0 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Sat, 1 Jun 2013 21:33:26 +0200 Subject: [PATCH 172/172] Fix a compile warning on NetBSD --- sql/sql_test.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/sql_test.cc b/sql/sql_test.cc index 25ab84fe4db..311400c0c6c 100644 --- a/sql/sql_test.cc +++ b/sql/sql_test.cc @@ -627,7 +627,7 @@ Max used alarms: %u\n\ Next alarm time: %lu\n", alarm_info.active_alarms, alarm_info.max_used_alarms, - alarm_info.next_alarm_time); + (ulong)alarm_info.next_alarm_time); #endif display_table_locks(); fflush(stdout);