Commit graph

85318 commits

Author SHA1 Message Date
Nirbhay Choubey
ecc2c96c9d Merge of maria/5.5 into maria-5.5-galera.
bzr merge -r tag:mariadb-5.5.35 maria/5.5
2014-01-29 19:00:43 -05:00
Sergei Golubchik
6b6d40fa6c 5.3 merge 2014-01-28 10:58:18 +01:00
Sergei Golubchik
52340eee1a 5.2 merge 2014-01-28 10:27:52 +01:00
Sergei Golubchik
19b24f8f53 5.1 merge 2014-01-28 10:23:11 +01:00
Sergei Golubchik
16e0cae0cc fixed a client-side overflow in mysql cli 2014-01-28 10:21:47 +01:00
Alexander Barkov
f189ed5009 MDEV-5506 safe_mutex: Trying to lock unitialized mutex at safemalloc.c
on server shutdown after SELECT with CONVERT_TZ

It's wrong to return my_empty_string from val_str().
Removing my_empty_string. Using make_empty_result() instead.
2014-01-28 12:25:29 +04:00
Sergey Vojtovich
e1e5ce0da2 MDEV-5345 - Deadlock between mysql_change_user(), SHOW VARIABLES and
INSTALL PLUGIN

There was mixed lock order between LOCK_plugin, LOCK_global_system_variables
and LOCK_system_variables_hash. This patch ensures that write-lock on
LOCK_system_variables_hash doesn't intersect with LOCK_plugin.

Fixed by moving initialization/deinitialization of plugin options from
plugin_add()/plugin_del() to plugin_initialize()/plugin_deinitalize().
So that plugin options are handled without protection of LOCK_plugin.
2014-01-28 11:12:43 +04:00
Alexander Barkov
94868914b8 merge 5.3 -> 5.5 2014-01-28 13:00:50 +04:00
Sergei Golubchik
4bf002d6a0 MDEV-5576 ALTER TABLE progress report > 100% 2014-01-27 20:50:32 +01:00
Sergei Golubchik
4a3ea30221 MDEV-4787 Missing dependency to "patch" for the Debian/Ubuntu "mariadb-test" package
add patch as a "suggested" dependency to mariadb-test-5.5
2014-01-27 16:58:26 +01:00
Sergei Golubchik
b4dd13b519 MDEV-5405 RQG induced crash in mi_assign_to_key_cache in safe mutex unlock
if two threads were calling mi_assign_to_key_cache() for the same table,
one could change share->key_cache while the other was having
share->key_cache->op_lock locked. The other thread would crash then,
trying to unlock share->key_cache->op_lock (because it would be a different mutex).

fixed by caching the value of share->key_cache in a local variable. The thread can still
call flush_key_blocks() for an unassigned keycache, but it's harmless.
2014-01-27 12:11:04 +01:00
Sergei Golubchik
ebaac51c2f mtr: check that tests clean up debug_sync. fix tests that didn't. 2014-01-27 12:10:53 +01:00
Alexander Barkov
7ea9d1e692 MDEV-5458 RQG hits 'sql/tztime.cc:799: my_time_t sec_since_epoch(...):
Assertion `mon > 0 && mon < 13' failed.'
2014-01-27 13:15:40 +04:00
Sergei Golubchik
879a05ce3f improve oqgraph boost check to filter out newer boost versions 2014-01-26 21:49:39 +01:00
Sergei Golubchik
8ece9de833 workaround test failures in buildbot:
in some VMs readline thinks that the window size is zero. ignore it.
2014-01-26 21:49:31 +01:00
Sergei Golubchik
90e2240869 MDEV-5461 Assertion `length <= column->length' fails in write_block_record with functions in select list, GROUP BY, ORDER BY
Old code in create_tmp_table(), that created an extra one-byte field (recinfo)
before every NULL-able grouping field (Field) in the tmp table, did not actually work.
Because the matching code in end_update(), that was supposed to update this byte,
was using a wrong offset, updating the first byte of the Field, not a byte before it.
Normally this wasn't an issue, because the Field value (written later in end_update)
was overwriting this byte anyway. But in this bug the Field was Field_null, with zero
length, so end_update() was overwriting the first byte of the following field.
And the following field was not-nullable constant, which was stored only once in
create_tmp_table and never updated later.

Fixed by removing the code that didn't do any useful work anyway.
2014-01-26 21:49:19 +01:00
Sergei Golubchik
3f2f9c36b1 move innodb specific test from group_by.test to group_by_innodb.test 2014-01-26 21:49:11 +01:00
Sergei Golubchik
0df3c2033b fix the test for MDEV-5029 to clean up after itself 2014-01-26 21:49:04 +01:00
Michael Widenius
680288873c Fix for MDEV-5168: MariaDB returns warnings for INSERT IGNORE
Added variable "OLD_MODE" that can be used to turn off the new behavior

mysql-test/r/insert.result:
  Added test case
mysql-test/r/mysqld--help.result:
  Added old_mode
mysql-test/suite/sys_vars/r/old_mode_basic.result:
  Added testing of new variable
mysql-test/suite/sys_vars/t/old_mode_basic.test:
  Added testing of new variable
mysql-test/t/insert.test:
  Added test case
sql/sql_class.h:
  Added bit flags for OLD_MODE
sql/sql_insert.cc:
  Disable duplicate key warnings for INSERT IGNORE of OLD_MODE NO_DUP_KEY_WARNINGS_WITH_IGNORE is used
sql/sql_show.cc:
  Don't show progress reporting on SHOW PROCESSLIST if OLD_MODE NO_PROGRESS_INFO is used
sql/sys_vars.cc:
  Added OLD_MODE
2014-01-26 21:48:42 +01:00
Michael Widenius
fb018850dc Fixed that setup_natural_join_row_types can safely be called twice
sql/item.h:
  Added cache for setup_natural_join_row_types
sql/sql_base.cc:
  Cache old value of first_name_resolution_table for next call.
  (It's not safe to try to recalculate the value as the join structure may have been changed by the optimizer)
2014-01-26 21:48:23 +01:00
Michael Widenius
6e699eb409 Fixed bug that I accidently introduced in mysql_tzinfo_to_sql
Added test cases

mysql-test/r/mysql_tzinfo_to_sql_symlink.result:
  Updated results
mysql-test/std_data/zoneinfo/garbage:
  test file
mysql-test/std_data/zoneinfo/ignored.tab:
  test file
mysql-test/t/mysql_tzinfo_to_sql_symlink.test:
  Added test cases for all options
sql/tztime.cc:
  Better error messages.
  Fixed wrong place for 'continue'
2014-01-26 21:47:31 +01:00
Michael Widenius
46c4f3a785 speed up tokudb tests by adding begin/commit around insert loops
Marked very long running tests as big_test
2014-01-26 20:46:15 +02:00
Michael Widenius
3d67c68ad1 Fixed MDEV-4970: Wrong result with Aria table populated with disabled keys
Problem was that ALTER TABLE DISABLE KEYS incremented create_trid for the table,
which made the new index entries invisible until the global trid catched up.

Fixed by only updating create_trid if we are rewriting all rows and indexes.


mysql-test/suite/maria/alter.result:
  Added test case
mysql-test/suite/maria/alter.test:
  Added test case
storage/maria/ha_maria.cc:
  Only updating create_trid if we are doing a full repair (and thus rewriting all rows and indexes).
storage/maria/trnman.c:
  More DBUG_PRINT
2014-01-25 15:41:08 +02:00
Alexander Barkov
0ad8eaeb56 Merge 5.3 -> 5.5 2014-01-27 15:05:23 +04:00
Alexander Barkov
ba3d0b173a Merge 5.3 -> 5.5 2014-01-27 13:14:00 +04:00
unknown
31249744fe merge 5.3->5.5 2014-01-26 16:41:15 +02:00
Sergey Petrunya
669c6620af [Backport to 5.3]
MDEV-5337: Wrong result in mariadb 5.5.32 with ORDER BY + LIMIT when 
index_condition_pushdown=on
- in test_if_skip_sort_order(), correct the condition under which
  we have the code that restores the previously pushed index condition.
2014-01-25 00:26:40 +04:00
Sergey Petrunya
c6de45584a Merge 2014-01-24 23:44:52 +04:00
Sergey Petrunya
e1f94a6985 MDEV-5337: Wrong result in mariadb 5.5.32 with ORDER BY + LIMIT when index_condition_pushdown=on
- in test_if_skip_sort_order(), correct the condition under which
  we have the code that restores the previously pushed index condition.
2014-01-24 23:40:48 +04:00
Michael Widenius
4d83f579da Fixed Mageia Bug 12355: mariadb produces warning messages while loading timezone information
- Warnings about wrong symlink messages or non-timezone files with '.tab' are now only given if run with --verbose
- Added long option handling
- Added --help, --verbose and --version options


sql/tztime.cc:
  Add usage of my_getopt, to get long options
2014-01-24 19:44:13 +02:00
Alexander Barkov
d106dc0597 MDEV-5504 Server crashes in String::length on SELECT with MONTHNAME, GROUP BY, ROLLUP
The crash happened because Item_func_monthname was derived from
Item_func_month, so Item_func_monthname::is_null() did not work fine.
Backporting a change from 5.5: Item_func_monthname is now derived from
Item_str_func.
2014-01-24 16:50:39 +04:00
Michael Widenius
d15b3386db Fix for MDEV-5531: double call procedure in one session - hard shutdown the server
Main fix was to not cache derivied tables as they may be temporary tables that are deleted before the next query.
This was a bit tricky as Item_field::fix_fields depended on cached_tables to be set to resolve some columns.



mysql-test/r/sp-bugs.result:
  Added test case
mysql-test/t/sp-bugs.test:
  Added test case
sql/item.cc:
  Fixed fix_outer_field to handle case where found field did not have in cached_table
  Idea is that if cached_table is not avaliable, use from_field->table->pos_in_table_list instead
sql/records.cc:
  Also accept INTERNAL_TMP_TABLE for memmap
sql/sql_base.cc:
  More DBUG_PRINT
  Fixed that setup_natural_join_row_types() is not run twice.
  Original code modified context->first_name_resolution_table also for second executions.
  This was wrong as this could give wrong results if some joins had been optimized away between calls.
sql/sql_derived.cc:
  Mark derived tables as internal temporary tables (INTERNAL_TMP_TABLE), not as NON_TRANSACTIONAL_TMP_TABLE.
  This is more correct as the tables are not visible by the end user.
sql/sql_insert.cc:
  Reset pos_in_table_list before calling fix_fields.
  One of the consequences of the change of not caching all generated tables in Item_ident is that
  pos_in_table_list needs to be correct in calls to fix_fields.
sql/sql_lex.cc:
  More DBUG_PRINT
sql/sql_parse.cc:
  Don't cache derivied tables as they may be temporary tables that are deleted before the next query
sql/sql_select.cc:
  Reset table_vector. This was required as some code checked the vector to see if temporary tables had already been created.
sql/table.cc:
  Mark tables with field translations as cacheable (as these will not disapper between stmt executions.
2014-01-24 14:50:18 +02:00
Michael Widenius
7335c6f2a4 Fixed failures in tokudb test cases
storage/tokudb/mysql-test/tokudb_bugs/r/5733_innodb.result:
  Speed up test
storage/tokudb/mysql-test/tokudb_bugs/r/5733_tokudb.result:
  Speed up test
  Fix results
storage/tokudb/mysql-test/tokudb_bugs/r/xa-6.result:
  Ensure that mysql.proc is properly closed
storage/tokudb/mysql-test/tokudb_bugs/t/5733_innodb.test:
  Speed up test
storage/tokudb/mysql-test/tokudb_bugs/t/5733_tokudb.test:
  Speed up test
  Accept both index and range scan for one query
storage/tokudb/mysql-test/tokudb_bugs/t/xa-6.test:
  Ensure that mysql.proc is properly closed
2014-01-24 14:30:19 +02:00
Alexey Botchkov
5a7ae59305 MDEV-5419 no audit events for warnings converted to errors in the strict mode.
small fix in the --replace_regex template.
2014-01-24 06:07:22 +04:00
Nirbhay Choubey
d2c72da610 The bzr revision visible in @@version_comment should
represent the last merged revision from codership branch
and not the revision of the MGC tree itself.

Fixed by adding a cmake variable to hold the revision
number of last merged revision from codership branch.
2014-01-23 15:57:47 -05:00
Alexey Botchkov
8f3e1bfc92 MDEV-5419 no audit events for warnings converted to errors in the strict mode.
Plugins get error notifications only when my_message_sql() is called.
        But errors are launched with THD::raise_condition() calls in other
        places. These are push_warning(), implementations of SIGNAL and
        RESIGNAL commands.
        So it makes sence to notify plugins there in THD::raise_condition().
2014-01-23 22:21:02 +04:00
Sergey Petrunya
519c7305ac MDEV-5368: Server crashes in Item_in_subselect::optimize on ...
- convert_subq_to_sj() must connect child select's tables into 
  parent select's TABLE_LIST::next_local chain.  
- The problem was that it took child's leaf_tables.head() which
  is different. This could cause certain tables (in this bug's case,
  child select's non-merged semi-join) not to be present in 
  TABLE_LIST::next_local chain.  Which would cause non-merged semi-join
  not to be initialized in setup_tables(), which would lead to 
  NULL pointer dereference.
2014-01-23 21:26:04 +04:00
Sergey Petrunya
eb88c905e6 Merge 2014-01-23 21:12:37 +04:00
Sergey Petrunya
f0fa66a26d MDEV-5368: Server crashes in Item_in_subselect::optimize on ...
- convert_subq_to_sj() must connect child select's tables into 
  parent select's TABLE_LIST::next_local chain.  
- The problem was that it took child's leaf_tables.head() which
  is different. This could cause certain tables (in this bug's case,
  child select's non-merged semi-join) not to be present in 
  TABLE_LIST::next_local chain.  Which would cause non-merged semi-join
  not to be initialized in setup_tables(), which would lead to 
  NULL pointer dereference.
2014-01-23 15:41:51 +04:00
unknown
d9cb1352c8 merge of MDEV-5356 5.1->5.3 (with more fixes and test suite).
THD::thd->activate_stmt_arena_if_needed() should be used to temporary activating statement arena instead of direct usage of THD::set_n_backup_active_arena() because possible such scenario:
  1) func1 saves current arena and activates copy1 of statement arena
  2) func2 saves copy1 of statement arena setup by func1 and activates copy2
  3) some changes made for copy 2
  4) func2 stores changed copy2 back to statenet arena and activates copy1
  5) func1 store unchanged copy1 back to statemnt arena (rewrite changed copy 2 so changes become lost) and activates arena which was before.
2014-01-23 12:05:10 +02:00
Sergei Golubchik
2ff76f6750 MDEV-5406 add index to an innodb table with a uniqueness violation crashes mysqld
After table->file->add_index() in mysql_alter_table() the table in the engine
has the intermediate temporary structure, it's neither the original nor the
final table structure (it'll be final after successful table->file->drop_index()
call). So, when add_index() fails with a unique key violation, we cannot simply
get the failed key number and easily map it to the key name and key structure via
table->key_info[key_no].

For now we'll create this "intermediate temporary structure", emulating InnoDB
internal rules.

This bug and the fix will go away in 10.0 that uses completely different online
alter table code.

mysql-test/t/alter_table_trans.test:
  mdev:5406
2014-01-23 11:04:59 +01:00
unknown
5f5f7befe3 MDEV-5356: Server crashes in Item_equal::contains on 2nd execution of a PS
THD::thd->activate_stmt_arena_if_needed() should be used to temporary activating statement arena instead of direct usage of THD::set_n_backup_active_arena() because possible such scenario:
  1) func1 saves current arena and activates copy1 of statement arena
  2) func2 saves copy1 of statement arena setup by func1 and activates copy2
  3) some changes made for copy 2
  4) func2 stores changed copy2 back to statenet arena and activates copy1
  5) func1 store unchanged copy1 back to statemnt arena (rewrite changed copy 2 so changes become lost) and activates arena which was before.
2014-01-23 11:11:01 +02:00
Sergei Golubchik
0cdf1573b6 MDEV-5421 Assertion `! is_set()' fails on INSERT IGNORE when a table has no partition for a value
make print_no_partition_found() to respect MYF(errflag)

mysql-test/suite/parts/t/insert_ignore-5421.test:
  mdev:5421
2014-01-23 00:03:05 +01:00
Sergei Golubchik
8d2fba9331 MDEV-5550 Invalid cmake variable in mysql-test/CMakeLists.txt 2014-01-23 00:02:52 +01:00
Sergei Golubchik
4fadce7ec6 Change our INSTALL_DEBUG_SYMBOLS cmake function to be less picky
and support MySQL CMakeLists.txt files
2014-01-23 00:02:37 +01:00
Sergei Golubchik
b85ab1d464 update debian patches to match the current code state 2014-01-23 00:02:22 +01:00
Sergei Golubchik
3b5f66dbf9 fix XtraDB to compile on Windows 2014-01-23 00:02:08 +01:00
Sergei Golubchik
c7a5314cb2 update test results, broken by MDEV-5547 fix 2014-01-22 23:59:21 +01:00
Sergei Golubchik
ec34edd9c3 Percona-Server-5.5.35-rel33.0.tar.gz 2014-01-22 15:35:42 +01:00
Sergei Golubchik
37d240ecf9 MySQL-5.5.35 merge 2014-01-22 15:29:36 +01:00