Commit graph

171900 commits

Author SHA1 Message Date
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
Vicențiu Ciorbaru
d817267ae6 [MDEV-6877] Change replication event loop to account for empty events
When writing rows with a minimal row image, it is possible to receive
empty events. In that case m_curr_row and m_rows_end are the same,
however the event implies an insert into the table with the default
values associated for that table.
2015-06-30 13:17:09 +03:00
Vicențiu Ciorbaru
50955075bb [MDEV-6877] Fixed Assertion Error, when receiving an empty event
Due to how events are created with a minimal binlog_row_image, it is
possible to receive empty write events because all the columns
in the table have a default value. (For example an auto-increment)
Make sure we account for that.
2015-06-30 13:17:09 +03:00
Vicențiu Ciorbaru
ca276729bc [MDEV-6877] Fixed Update_rows_log_event to correctly apply update log events
Update_rows_log_event must make use of the after image bitmap when
detecting which columns to update.
2015-06-30 13:17:09 +03:00
Vicențiu Ciorbaru
8a1b7c9c65 [MDEV-6877] Removed unnecesary bitmap in binlog_write_row
The bitmap is now deduced from the table's read and write set.
2015-06-30 13:17:09 +03:00
Vicențiu Ciorbaru
8bd5301a1e [MDEV-6877] Add binlog writing according to columns
The logging function now writes to the binlog according
to the bitmap columns implied by the binlog_row_image variable.
2015-06-30 13:17:09 +03:00
Vicențiu Ciorbaru
edff3f3fa9 [MDEV-6877] Update Update, Delete and Write row log event
The row events no longer require columns arguments.
2015-06-30 13:17:09 +03:00
Vicențiu Ciorbaru
724d5ae5f1 [MDEV-6877] Update binlog_prepare_pending_rows_events to use comparison function
When deciding which binlog events are pending, make use of the bitmap
compare function instead.
2015-06-30 13:17:09 +03:00
Vicențiu Ciorbaru
a7d181a023 [MDEV-6877] Added a bitmap compare function for binlog_row_image
The function compares bitmaps according to the binlog_row_image variable
setting.
2015-06-30 13:17:09 +03:00
Vicențiu Ciorbaru
c096caee71 [MDEV-6877] Removed unneded code from rpl_injector
The rpl_injector code is now considered dead code.

This patch only removes the minimum number of function calls
to allow implementing binlog_row_image. The other functions are to be
removed in a subsequent patch.
2015-06-30 13:17:09 +03:00
Vicențiu Ciorbaru
e53ad95b73 [MDEV-6877] Added mark_columns_per_bitmap_row_image
Depending on which binlog_row_image we are using, we must
mark columns which to update differently both in the before image
as well as the after image.
2015-06-30 13:17:09 +03:00
Vicențiu Ciorbaru
b9d1d348dd [MDEV-6877] Added test suite for binlog_row_image sys var 2015-06-30 13:17:08 +03:00
Vicențiu Ciorbaru
3ed519ff05 [MDEV-6877] Added binlog_row_image system variable
The system variable is present but it does not do anything yet.
2015-06-30 13:17:08 +03:00
Alexander Barkov
768620ee5c MDEV-8189 field<>const and const<>field are not symmetric 2015-06-30 12:56:31 +04:00
Nirbhay Choubey
1b2f9126b8 Increase field value max length to 2048 to avoid truncation
of wsrep_provider_options' value. Also increase the max value
length for SYSTEM_VARIABLES schema table.
2015-06-29 17:28:50 -04:00
Jan Lindström
7923c0cff2 Fix test failure where the environment was not fully restored. 2015-06-29 20:03:57 +03:00
Jan Lindström
79af0b3823 MDEV-8393: InnoDB: Assertion failure in file fil0crypt.cc line 2109
Crypt data was used when it was already freed. Delete crypt data
more thorougly when freed.
2015-06-29 14:10:37 +03:00
Jan Lindström
4fac626917 MDEV-8390: innodb.innodb-flush-changed-page-bitmaps crashes
Analysis: Flush changed page bitmaps calls log_online_follow_redo_log
that later calls log_group_read_log_seg with release_mutex = true
and that causes the log_sys mutex being released before
log_decrypt_after_read function that later required log_sys mutex.

Fix: Enter log_sys mutex before log_decrypt_after_read if mutex
is released and release the mutex after the function if we
acquired it before function call.
2015-06-29 12:48:42 +03:00
Sergey Vojtovich
08fa60e5f3 MDEV-8382 - Processlist returns random numbers in Time column
Time column of SHOW PROCESSLIST was returned in microseconds after rev. 8f603bc.
Revert original timescale (seconds).
2015-06-29 12:06:00 +04:00
Sergey Vojtovich
a0f5f407eb MDEV-8339 - Server crash during table cache eviction
TDC_element::free_tables_back() had pre-lfhash leftover code, which referenced
TDC_element::free_tables via TDC_element::share. This is not correct as share
may be NULL (newly inserted or to be removed), instead access free_tables
directly.
2015-06-29 11:07:23 +04:00
Sergey Vojtovich
0865e3deab MDEV-7792 - SQL Parsing Error - UNION AND ORDER BY WITH JOIN
ORDER BY against union may confuse name resolution context, causing valid
SQL statements to fail.

The purpose of context change was presumably intended for the duration of
gathering field list for ORDER BY. However it isn't actually required (name
resolution context is never accessed by the latter).

See also alternative solution (in MySQL 5.7): 92145b95.
2015-06-29 11:04:55 +04:00
Jan Lindström
ad9b3263d3 MDEV-8391: encryption.innodb-page_encryption_compression fails
Test create_or_replace should make sure that background decrypt
operation is finished and flush all dirty pages using restart
to clean up the database before ending.
2015-06-29 08:49:58 +03:00
Sergei Golubchik
7567b9fa10 update tests to pass 2015-06-28 18:51:40 +02:00
Alexander Barkov
4d4f2ed2e1 Moving Item_bool_func::add_key_fields_optimize_op() to Item_bool_func2.
It's now needed outside of Item_bool_func2 any more.
2015-06-28 18:23:15 +04:00
Sergei Golubchik
e04f6e7e3a Merge branch 'bb-10.1-serg' into 10.1 2015-06-28 15:23:33 +02:00
Alexander Barkov
ee0237fe89 MDEV-8330 Get rid of Item_func::select_optimize() and Item_func::optimize_type 2015-06-28 14:29:51 +04:00
Sergei Golubchik
26162c71c5 rename {sys_vars,sql_plugin_services}.h -> *.ic 2015-06-28 12:09:46 +02:00
Sergei Golubchik
55b96d2708 bump the VERSION to 10.1.6 and related changes
fix two #if MYSQL_VERSION_ID > 100105
2015-06-28 12:09:18 +02:00
Sergei Golubchik
d1a11568c7 cleanup: safer versions of PSI no-op macros 2015-06-27 20:38:05 +02:00
Sergei Golubchik
658992699b Merge tag 'mariadb-10.0.20' into 10.1 2015-06-27 20:35:26 +02:00
Sergei Golubchik
fe7e334f3e cleanup: remove unused function argument 2015-06-27 09:40:57 +02:00
Sergei Golubchik
c583360359 unittest: encrypted temporary IO_CACHE 2015-06-27 09:40:56 +02:00
Sergei Golubchik
31eed4759b cleanup: use WRITE_CACHE for view frm files
SEQ_READ_APPEND is for two threads (reader and writer)
simultaneously accessing the IO_CACHE
2015-06-27 09:40:56 +02:00
Sergei Golubchik
1ce71c8478 MDEV-7832 Add status variables to track CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE
Pretend that CREATE TABLE and CREATE TEMPORARY TABLE are
two different commands internally. The user doesn't need
to know that they both are SQLCOM_CREATE_TABLE.

Same for DROP [TEMPORARY] TABLE
2015-06-27 09:40:56 +02:00
Sergei Golubchik
e24caa7588 small cleanup
* keep all com_xxx constants together in struct system_status_var
* fix an outdated comment in sql_cmd.h
* fix an off-by-one bug in mysqld.cc
2015-06-27 09:40:56 +02:00
Sergei Golubchik
c47acc21aa remove unused function and array 2015-06-27 09:40:55 +02:00
Sergei Golubchik
794a895c4c simplify CREATE TEMPORARY TABLE parser rule
as a bonus that makes CREATE TEMPORARY TEMPORARY TABLE illegal
2015-06-27 09:40:55 +02:00
Sergei Golubchik
bfabaf6486 Deinitialize plugins in the reverse plugin_type_initialization_order
Old code worked because plugin locking guaranteed that
encryption plugin is deinitialized last.
But compiled-in plugins are never locked.

This fixes encryption failures on fulltest builder
2015-06-27 09:40:55 +02:00
Sergei Golubchik
ff7a1ff6d7 fix printf format string 2015-06-27 09:40:54 +02:00
Sergei Golubchik
8036ad0a08 misc encryption tests fixes
* support statically compiled file_key_management when possible
* rename encryption.encryption_create_or_replace -> encryption.create_or_replace
* delete unnecessary *.opt file (including
  have_key_management_plugin.inc is enough)
* remove unnecessary LOWER() for strings that are compared
  case insensitively anyway
2015-06-27 09:40:54 +02:00
Sergei Golubchik
627c6e812b MDEV-8298 sys_vars.all_vars fails in -DWITH_WSREP=OFF build
Disable sys_vars.all_vars test. There's no need to write
boilerplate tests for every new system variable, our
INFORMATION_SCHEMA.SYSTEM_VARIABLES and sysvar_* tests
are now used to show all basic properties of all variables.
2015-06-27 09:40:54 +02:00
Sergei Golubchik
e7620ce4ce MDEV-8281 aes_decrypt crashes in block_crypt()
fix aes_decrypt of yassl to support zero-length input
2015-06-27 09:40:54 +02:00
Sergei Golubchik
e20be69ecc update test results and 32-bit rdiffs 2015-06-27 09:40:42 +02:00
Alexander Barkov
55d8ee5f70 MDEV-8239 Reverse spatial operations OP(const, field) do not get optimized
Moving Item_func_spatial_rel from Item_bool_func to Item_bool_func2.
to make OP(const,field) use indexes.
- MBR functions supported OP(const,field) optimization in 10.0,
but were inintentionally broken in an earlier 10.1 change that introduced
a common parent for Item_func_spatial_mbr_rel and Item_func_spatial_precise_rel.
- Precise functions never supported optimization for OP(const,field).
Now both MBR and precise functions support OP(const,field) optimization.
2015-06-26 22:49:49 +04:00
Alexander Barkov
cb5f32ebe3 Moving Item_func_xor out of Item_bool_func2, as it does not need
any of the optimizer related functionality.
2015-06-26 20:00:24 +04:00
Alexander Barkov
40e5aceaff Removing Item_int_func::sargable. Adding virtual implementations of
count_sargable_conds() instead for Item_func_in, Item_func_null_predicate,
Item_bool_func2. There other Item_int_func descendants that used to set
"sargable" to true (Item_func_between, Item_equal) already have their
own implementation of count_sargable_conds(). There is no sense to
have two parallel coding models for the same thing.
2015-06-26 17:46:34 +04:00
Alexander Barkov
436411860e Moving ST_RELATE() implementation out of Item_func_precise_spatial_rel,
adding a separte class Item_func_spatial_relate for ST_RELATE().
This is a preparatory patch for:
 MDEV-8239 Reverse spatial operations OP(const, field) do not get optimized
2015-06-26 15:42:49 +04:00