Commit graph

171946 commits

Author SHA1 Message Date
Kristian Nielsen
7046788448 Fix build failures. 2015-07-19 10:31:24 +02:00
Kristian Nielsen
13dbb6fa9e Merge MDEV-8496 into 10.1 2015-07-19 09:30:36 +02:00
Kristian Nielsen
44c4b2304b MDEV-8496: gtid_ignore_duplicates treats gtid_seq_no as 32-bit
--gtid-ignore-duplicates was comparing sequence numbers as 32-bit, so
after 2**32 transactions things would start to fail.
2015-07-19 09:28:22 +02:00
Elena Stepanova
d258f5ff04 MDEV-8495 encryption.innodb_first_page fails sporadically in buildbot
The test did not wait until the server shuts down
2015-07-17 19:20:50 +03:00
Monty
0ad00c66d2 Fix for MySQL bug #77448 Inconsistent handling of RAND() in WHERE and HAVING
Problem was that for queries of type:

select rand() r, rand()  p, rand() = rand() from a having r = p

The optimizer thought that r = p was same as rand() = rand() and this would always be true.

The problem was that when testing if two expressions are equal, we didn't take into account no determinstic functions.

The fix is to not compare non deterministic functions as equal.
2015-07-16 10:36:58 +03:00
Monty
872a953b22 MDEV-8469 Add RESET MASTER TO x to allow specification of binlog file nr
Other things:
- Avoid calling init_and_set_log_file_name() when opening binary log.
- Remove newlines early when reading from index file.
- Ensure that reset_logs() will work even if thd is 0 (Can happen on startup)
- Added thd to sart_slave_threads() for better error handling.
2015-07-16 10:36:58 +03:00
Nirbhay Choubey
df0498fd76 Update sys_vars.sys_vars_wsrep result. 2015-07-14 21:38:17 -04:00
Nirbhay Choubey
ee9bdcf79a Binlog SE doesn't implement abort_transaction(), so skip warning. 2015-07-14 17:33:22 -04:00
Nirbhay Choubey
e204116734 Check supress_my_ok before sending Ok packet (logic lost during merge). 2015-07-14 17:21:35 -04:00
Nirbhay Choubey
0e2ce3b745 Allow binlog row image column marking even for wsrep binlog emulation. 2015-07-14 17:16:28 -04:00
Nirbhay Choubey
dd4d81ddfd Update read_pos after reading from the cache. 2015-07-14 16:58:38 -04:00
Nirbhay Choubey
dced5146bd Merge branch '10.0-galera' into 10.1 2015-07-14 16:05:29 -04:00
Alexander Barkov
75931feabe MDEV-8362 dash '-' is not recognized in charset armscii8 on select where query 2015-07-14 12:00:05 +04:00
Alexander Barkov
657f8a8d60 MDEV-8456 Dead code in Item_cond::fix_fields() and Item_func_between::fix_fields() 2015-07-13 13:16:14 +04:00
Monty
f195f93903 Cleanups, fixed warnings from valgrind, fixed failing tests (because on changes in WSREP initialization) 2015-07-10 12:49:05 +03:00
Monty
24881437b7 Fixed bug found by bar where we didn't properely check length of last argument for BETWEEN
This should not have caused any notable errors in most cases.

After fix, we are not using keys to solve MIN/MAX if the string used for comparision is longer thant the column-
2015-07-10 09:18:17 +03:00
Monty
9bb8b74e99 Merge branch '10.1' of github.com:MariaDB/server into 10.1
Conflicts:
	sql/item_subselect.cc

Fixed also typo in comment
2015-07-09 14:47:32 +03:00
Monty
a6c8014387 Speed and code space optimziation:
- Cache variables.lc_messages->errmsgs->errmsgs in variables.errmsgs

This gives us 15 byte less code space and 2 memory references for any access to language dependent message,
of which there are 500 in the server..
2015-07-09 13:09:36 +03:00
Alexander Barkov
7780370343 MDEV-8336 The meaning of NO_ZERO_DATE is not clear for DATETIME.
In some cases NO_ZERO_DATE did not allow datetime values with zero date part
and non-zero time part (e.g. '0000-00-00 10:20:30.123456').
Allowing values of this kind in all known pieces of the code.
2015-07-08 19:20:07 +04:00
Nirbhay Choubey
8154ef4b16 MDEV-7067: Server outputs Galera (WSREP) information, even if Galera is disabled
Additional changes :
* On startup, do not initialize wsrep if wsrep_on=0.
* On shutdown, stop wsrep replication only if > 0 wsrep
threads are running.
2015-07-07 22:26:44 -04:00
Alexander Barkov
b08c4201fa Removing unused String declaration in Create_field::Create_field 2015-07-07 15:59:21 +04:00
Alexander Barkov
e4f8cea356 MDEV-8419 utf32: compare broken bytes as "greater than any non-broken character" 2015-07-07 09:15:58 +04:00
Monty
7332af49e4 - Renaming variables so that they don't shadow others (After this patch one can compile with -Wshadow and get much fewer warnings)
- Changed ER(ER_...) to ER_THD(thd, ER_...) when thd was known or if there was many calls to current_thd in the same function.
- Changed ER(ER_..) to ER_THD_OR_DEFAULT(current_thd, ER...) in some places where current_thd is not necessary defined.
- Removing calls to current_thd when we have access to thd

Part of this is optimization (not calling current_thd when not needed),
but part is bug fixing for error condition when current_thd is not defined
(For example on startup and end of mysqld)

Notable renames done as otherwise a lot of functions would have to be changed:
- In JOIN structure renamed:
   examined_rows -> join_examined_rows
   record_count -> join_record_count
- In Field, renamed new_field() to make_new_field()

Other things:
- Added DBUG_ASSERT(thd == tmp_thd) in Item_singlerow_subselect() just to be safe.
- Removed old 'tab' prefix in JOIN_TAB::save_explain_data() and use members directly
- Added 'thd' as argument to a few functions to avoid calling current_thd.
2015-07-06 20:24:14 +03:00
Nirbhay Choubey
a5f4412bd4 Fix embedded result to reflect increased system variable's max value length. 2015-07-06 11:40:56 -04:00
Alexander Barkov
3a606ba210 Fixing a bug in MDEV-8418 (utf16, utf16le) and MDEV-8417 (utf8mb4).
Fixing non-BMP characters to have the same weight, as it was before
MDEV-8418 and MDEV-8417.
2015-07-06 18:59:33 +04:00
Alexander Barkov
b2e324a21f MDEV-8416 ucs2: compare broken bytes as "greater than any non-broken character"
MDEV-8418 utf16: compare broken bytes as "greater than any non-broken character"
2015-07-06 15:50:56 +04:00
Alexander Barkov
35d8ac350d MDEV-8417 utf8mb4: compare broken bytes as "greater than any non-broken character" 2015-07-06 10:47:39 +04:00
Monty
8d4d185a08 Simple optimization and removal of compiler warnings 2015-07-05 12:40:16 +03:00
Monty
86377d078e Fixes done while working on MDEV-4119:
Fixed several optimizer issues relatied to GROUP BY:

a) Refering to a SELECT column in HAVING sometimes calculated it twice, which caused problems with non determinstic functions

b) Removing duplicate fields and constants from GROUP BY was done too late for "using index for group by" optimization to work

c) EXPLAIN SELECT ... GROUP BY did wrongly show 'Using filesort' in some cases involving "Using index for group-by"


a) was fixed by:
- Changed last argument to Item::split_sum_func2() from bool to int to allow more flags
- Added flag argument to Item::split_sum_func() to allow on to specify if the item was in the SELECT part
- Mark all split_sum_func() calls from SELECT with SPLIT_SUM_SELECT
- Changed split_sum_func2() to do nothing if called with an argument that is not a sum function and doesn't include sum functions, if we are not an argument to SELECT.

This ensures that in a case like
select a*sum(b) as f1 from t1 where a=1 group by c having f1 <= 10;

That 'a' in the SELECT part is stored as a reference in the temporary table togeher with sum(b) while the 'a' in having isn't (not needed as 'a' is already a reference to a column in the result)

b) was fixed by:
- Added an extra remove_const() pass for GROUP BY arguments before make_join_statistics() in case of one table SELECT.

This allowes get_best_group_min_max() to optimize things better.

c) was fixed by:
- Added test for group by optimization in JOIN::exec_inner for
  select->quick->get_type() == QUICK_SELECT_I::QS_TYPE_GROUP_MIN_MAX

item.cc:
- Simplifed Item::split_sum_func2()
  - Split test to make them faster and easier to read
  - Changed last argument to Item::split_sum_func2() from bool to int to allow more flags
  - Added flag argument to Item::split_sum_func() to allow on to specify if the item was in the SELECT part
  - Changed split_sum_func2() to do nothing if called with an argument that is not a sum function and doesn't include sum functions, if we are not an argument to SELECT.

opt_range.cc:
- Simplified get_best_group_min_max() by calcuating first how many group_by elements.
- Use join->group instead of join->group_list to test if group by, as join->group_list may be NULL if everything was optimized away.

sql_select.cc:
- Added an extra remove_const() pass for GROUP BY arguments before make_join_statistics() in case of one table SELECT.
- Use group instead of group_list to test if group by, as group_list may be NULL if everything was optimized away.
- Moved printing of "Error in remove_const" to remove_const() instead of having it in caller.
- Simplified some if tests by re-ordering code.
- update_depend_map_for_order() and remove_const() fixed to handle the case where make_join_statistics() has not yet been called (join->join_tab is 0 in this case)
2015-07-05 12:39:46 +03:00
Alexander Barkov
7ab7f5327a Fixing a typo in the previous commit. 2015-07-03 19:08:18 +04:00
Alexander Barkov
fff30e26c3 Adding UTF8 related macros to reduce duplicate code. 2015-07-03 18:40:04 +04:00
Alexander Barkov
aeb8d713f4 Removing unused code in ctype-utf8.c 2015-07-03 17:30:15 +04:00
Alexander Barkov
9ad8ff666c MDEV-8415 utf8: compare broken bytes as "greater than any non-broken character" 2015-07-03 17:24:16 +04:00
Alexander Barkov
95d07ee408 MDEV-8215 Asian MB3 charsets: compare broken bytes as "greater than any non-broken character" 2015-07-03 10:33:17 +04:00
Sergei Petrunia
302bf7c466 Tabular ANALYZE must get its data from execution tracker 2015-07-02 13:40:03 +03:00
Jan Lindström
28a8ba089f Fix test failure seen on P7/P8 innodb-encrypt-tables update/validate
function used incorrect type.
2015-07-02 12:02:27 +03:00
Sergei Petrunia
64424f9886 Update test results 2015-07-02 10:24:02 +03:00
Nirbhay Choubey
f0ce8482c1 Adjust result files to reflect increased system variable's max value length. 2015-07-01 22:52:59 -04:00
Sergei Petrunia
0319304893 Merge branch '10.1' of github.com:MariaDB/server into 10.1 2015-07-01 20:11:43 +03:00
Sergei Petrunia
9d2aa2b309 MDEV-7811: EXPLAIN/ANALYZE FORMAT=JSON should show subquery cache
Fixes over the original patch:
- Fix variable/class/other names
- Fix the JSON output to be in line with the output of other JSON
  constructs we produce
2015-07-01 20:03:29 +03:00
Jan Lindström
447416d1f3 MDEV-8406: Test failure on encryption.innodb-page_encryption_log_encryption in P7/P8
Used wrong type for encryption_key_id and page_compression_level in
table options. Make explicit casts for calls also.
2015-07-01 16:24:29 +03:00
Vicențiu Ciorbaru
93198fefe0 [MDEV-6877] Update test results to accound for binlog_row_image variable.
mysqld--help was not updated for binlog row image.
2015-07-01 16:22:41 +03:00
Alexander Barkov
f35386d6f3 Checking in range_mrr_icp.result forgotten in the previous patch. 2015-07-01 15:37:52 +04:00
Jan Lindström
92627e74ca Add show warnings to test to find out the reason for create failure. 2015-07-01 10:21:23 +03:00
Oleksandr Byelkin
c6aee27b73 MDEV-7811: EXPLAIN/ANALYZE FORMAT=JSON should show subquery cache 2015-06-30 23:07:14 +03:00
Vicențiu Ciorbaru
498a264d19 [MDEV-6877] Update test results to accound for binlog_row_image variable. 2015-06-30 19:51:09 +03:00
Jan Lindström
84cefe2455 MDEV-8396: InnoDB: Assertion failure in file fil0crypt.cc line 2052
Logic error, NULL pointer was referenced.
2015-06-30 18:49:47 +03:00
Jan Lindström
d1307bde65 MDEV-8395: InnoDB: Assertion failure in file fil0pagecompress.cc line 539 (SIGFPE)
File block size might be 0 and used on modulo operator. Make sure that
file block size is initialized to 512.
2015-06-30 18:49:47 +03:00
Vicențiu Ciorbaru
1a3321b649 [MDEV-6877] Added basic tests for binlog_row_image using minimal and noblob values 2015-06-30 14:44:33 +03:00
Vicențiu Ciorbaru
4d856e362e [MDEV-6877] Added tests for binlog_row_image using noblobs switch 2015-06-30 14:30:38 +03:00