Commit graph

176609 commits

Author SHA1 Message Date
Sergei Golubchik
f3914d10b6 Merge branch 'bb-10.2-serg-merge' into 10.2 2017-02-11 09:45:34 +01:00
Igor Babaev
5593458062 Fixed bug mdev-12015.
Corrected an assertion in JOIN::create_postjoin_aggr_table():
JOIN::join_tab[0] can be the first aggregation table if
the query uses window functions.
2017-02-10 17:21:45 -08:00
Sergei Golubchik
2195bb4e41 Merge branch '10.1' into 10.2 2017-02-10 17:01:45 +01:00
Vladislav Vaintroub
1b4f694adf MDEV-10291 : Fix race condition in bootstrap
main thread may destroy mutexes that bootstrap is using in
THD destructor.
2017-02-10 14:17:19 +00:00
Nirbhay Choubey
6f42c3c5a4 MDEV-7635: Fix for mroonga 32-bit test failures. 2017-02-10 06:30:42 -05:00
Elena Stepanova
c513c4cbf5 MDEV-7635: Additional test fixes 2017-02-10 06:30:42 -05:00
Nirbhay Choubey
c0209f8736 MDEV-11908: New default configuration produces warnings about itself upon startup
Print the message as a note instead of warning.
2017-02-10 06:30:42 -05:00
Nirbhay Choubey
616f4a773a MDEV-7635: Reset sync_binlog back to 0 2017-02-10 06:30:42 -05:00
Nirbhay Choubey
8b2e642aa2 MDEV-7635: Update tests to adapt to the new default sql_mode 2017-02-10 06:30:42 -05:00
Nirbhay Choubey
f556aa9b5f MDEV-7635: SET shouldn't fail for invalid values in strict trans mode 2017-02-10 06:30:42 -05:00
Nirbhay Choubey
04b52a0745 MDEV-7635: Part 2
New default sql_mode includes:
* STRICT_TRANS_TABLES
* ERROR_FOR_DIVISION_BY_ZERO
* NO_ENGINE_SUBSTITUTION
* NO_AUTO_CREATE_USER
2017-02-10 06:30:42 -05:00
Nirbhay Choubey
f8aa54f1bc MDEV-11685: sql_mode can't be set with non-ascii connection charset
The supplied sql_mode(s) should be converted to ASCII first,
before comparing it with the sql_mode set.
2017-02-10 06:30:42 -05:00
Nirbhay Choubey
eaf9c4b54f MDEV-7635: Disable rpl_row_index_choice (MDEV-11666) 2017-02-10 06:30:42 -05:00
Nirbhay Choubey
91991c1e2d MDEV-7635: Test fixes 2017-02-10 06:30:42 -05:00
Nirbhay Choubey
3435e8a515 MDEV-7635: Part 1
innodb_autoinc_lock_mode            = 2
innodb_buffer_pool_dump_at_shutdown = ON
innodb_buffer_pool_dump_pct         = 25
innodb_buffer_pool_load_at_startup  = ON
innodb_checksum_algorithm           = CRC32
innodb_file_format                  = Barracuda
innodb_large_prefix                 = ON
innodb_log_compressed_pages         = ON
innodb_purge_threads                = 4
innodb_strict_mode                  = ON
binlog_annotate_row_events          = ON
binlog_format                       = MIXED
binlog-row-event-max-size           = 8192
group_concat_max_len                = 1M
lock_wait_timeout                   = 86400
log_slow_admin_statements           = ON
log_slow_slave_statements           = ON
log_warnings                        = 2
max_allowed_packet                  = 16M
replicate_annotate_row_events       = ON
slave_net_timeout                   = 60
sync_binlog                         = 1
aria_recover                        = BACKUP,QUICK
myisam_recover_options              = BACKUP,QUICK
2017-02-10 06:30:42 -05:00
Nirbhay Choubey
185d140f19 MDEV-7635: Renamed standards_compliant_cte to standard_compliant_cte 2017-02-10 06:30:42 -05:00
Oleksandr Byelkin
25f6d1dad7 Unused code removed. 2017-02-10 10:22:03 +01:00
Oleksandr Byelkin
ae3072c0af MDEV-10554: Assertion `!derived->first_select()->exclude_from_table_unique_test || derived->outer_select()-> exclude_from_table_unique_test' failed in TABLE_LIST::set_check_merged()
Mark and check excluded because of merging derived tables and views.
2017-02-10 10:22:03 +01:00
Oleksandr Byelkin
ee51f58236 MDEV-10340: support COM_RESET_CONNECTION 2017-02-10 09:56:33 +01:00
Igor Babaev
78b5e8d6ca Fixed bug mdev-11745.
Due to this bug many queries that contained a window function
with MIN/MAX aggregation returned wrong results.

Calculation of a MIN/MAX aggregate function uses cache objects
and a comparator object that are created and set up in
Item_sum_hybrid::fix_fields () by a call of Item_sum_hybrid::setup_hybrid().
The latter binds the objects to the first argument of the
MIN/MAX function. Meanwhile window function perform aggregation
over fields of a temporary table. So binding must be done rather to
these fields. The earliest moment when setup the objects used in
MIN/max functions can be done is after all calls of the method
split_sum_func().

This patch introduces this late setup, but only for aggregate
functions used in window functions.
Probably it makes sense to use this late setup for all MIN/MAX
objects.
2017-02-09 19:34:01 -08:00
Alexey Botchkov
766ab17329 MDEV-11544 innodb_gis.precise fails in buildbot on Power.
Test fixed.
2017-02-10 01:24:54 +04:00
Alexey Botchkov
25aaecb240 MDEV-11858 json_merge() concatenates instead of merging.
Fix json_merge implementation.
2017-02-10 01:05:27 +04:00
Vladislav Vaintroub
de49fd842a RocksDB : Add lookup / compiling with optional compression libraries.
This change add WITH_ROCKSDB_{LZ4,BZIP2,ZSTD,snappy} CMake variables
that can be set to ON/OFF/AUTO.

If variable has default value AUTO, rocksdb links with corresponding
compression library. OFF disables compiling/linking with specific compression
library, ON forces compiling with it (cmake would throw error if library
is not available)

Support for ZLIB is added unconditionally, as it is always there.
2017-02-09 16:55:02 +00:00
Alexey Botchkov
3ae038b732 MDEV-11857 json_search() shows "Out of memory" with empty key.
Test result updated.
2017-02-09 17:55:58 +04:00
Marko Mäkelä
777422070a Adjust a test that is not supposed to crash.
This is follow-up to commit 1293e5e59b.
2017-02-09 16:04:02 +02:00
Sergei Golubchik
ddb284afaa MDEV-11601 Out-of-bounds string access in create_schema_table()
in Item_partition_func_safe_string(THD *thd, const char *name_arg,
uint length, CHARSET_INFO *cs= NULL), the 'name_arg' is the value
of the string constant and 'length' is the length of this constant,
so length == strlen(name_arg).
2017-02-09 16:03:56 +02:00
Marko Mäkelä
5ffbd084f5 Revert an accidental commit to work around MDEV-11601. 2017-02-09 16:02:57 +02:00
Alexey Botchkov
0e6968c244 MDEV-11857 json_search() shows "Out of memory" with empty key.
We should be ready for an empty key.
2017-02-09 17:38:53 +04:00
Marko Mäkelä
66c6188a4b Relax assertions on shutdown after aborted startup.
A proper InnoDB shutdown after aborted startup was introduced
in commit 81b7fe9d38.

Also related to this is MDEV-11985, making read-only shutdown more robust.

If startup was aborted, there may exist recovered transactions that were
not rolled back. Relax the assertions accordingly.
2017-02-09 10:18:46 +02:00
Marko Mäkelä
070a8754c4 MDEV-12024 InnoDB startup fails to wait for recv_writer_thread to finish
recv_writer_thread(): Do not assign recv_writer_thread_active=true
in order to avoid a race condition with
recv_recovery_from_checkpoint_finish().

recv_init_crash_recovery_spaces(): Assign recv_writer_thread_active=true
before creating recv_writer_thread.
2017-02-08 15:42:15 +02:00
Vladislav Vaintroub
bae2fc1f38 More verbose output for the Wix linker (light.exe)
This is an attempt to workaround buildbot
"1200 seconds without output, killing process"
2017-02-08 12:19:28 +00:00
Marko Mäkelä
3c411e3ad6 Test fix for MDEV-6076 Persistent AUTO_INCREMENT for InnoDB
Before killing the server, ensure that the redo log for the
incomplete transaction is flushed, so that the AUTO_INCREMENT
sequence will always be updated. Usually the INSERT
transaction would not have persisted the sequence before the
server was killed, but sometimes it could happen, causing
result mismatch.

Note: This test used to be called innodb_fts.innodb_fts_misc_debug.
2017-02-08 12:48:25 +02:00
Marko Mäkelä
9fa20716b6 Remove some more error log spam.
Do not effectively set DEBUG_DBUG='d' by setting DEBUG_DBUG='-d,...'.
Instead, restore the saved value of DEBUG_DBUG.

Also, split the test innodb_fts.innodb_fts_misc_debug into
innodb_fts.crash_recovery and innodb_fts.misc_debug, and enable
these tests for --valgrind, the latter test for --embedded,
and the former tests for the non-debug server.
2017-02-08 12:36:07 +02:00
Oleksandr Byelkin
a75633b5bd MDEV-11681: PARTITION BY LIST COLUMNS with default partition: Assertion `part_info->num_list_values' failed in get_part_iter_for_interval_cols_via_map
process adge case with only default partition
2017-02-08 10:22:42 +01:00
Jan Lindström
7b27465e10 MDEV-11974: MariaDB 10.2 encryption does not support spatial indexes
Encryption stores used key_version to
FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION (offset 26)
field. Spatial indexes store RTREE Split Sequence Number
(FIL_RTREE_SPLIT_SEQ_NUM) in the same field. Both values
can't be stored in same field. Thus, current encryption
implementation does not support encrypting spatial indexes.

fil_space_encrypt(): Do not encrypt page if page type is
FIL_PAGE_RTREE (this is required for background
encryption innodb-encrypt-tables=ON).

create_table_info_t::check_table_options() Do not allow creating
table with ENCRYPTED=YES if table contains spatial index.
2017-02-08 09:05:15 +02:00
Alexander Barkov
163ac07b93 MDEV-12020 ctype tests are non-deterministic due to missing sorting 2017-02-08 06:47:39 +04:00
Vicențiu Ciorbaru
241e8a15a2 Ignore "invisible" files 2017-02-07 22:15:11 +02:00
Vicențiu Ciorbaru
e2f3739aa1 Ignore dynamically generated build_version.cc file 2017-02-07 22:15:05 +02:00
Vicențiu Ciorbaru
f46176cbef Make rocksdb build with clang
We need to provide -fPIC for ROCKSDB files as well as -frtti if we
compile with Clang
2017-02-07 22:14:59 +02:00
Vicențiu Ciorbaru
840f8eab71 Make mysql_ldb work on clang 2017-02-07 22:14:52 +02:00
Vicențiu Ciorbaru
884fd9ac2b Make RocksDB run git submodule init and update if rocksdb is not fetched 2017-02-07 22:14:44 +02:00
Alexey Botchkov
abe6aca8d4 MDEV-11554 innodb_gis.precise fails in buildbot on Power.
Usual '8' turns into 7.9999999 on Power. Test case fixed.
2017-02-07 17:32:50 +04:00
Marko Mäkelä
92bbf4ad04 MDEV-11782 WIP: Support upgrade from MariaDB 10.1.
recv_log_format_0_recover(): Invoke log_decrypt_after_read() after
reading the old-format redo log buffer.

With this change, we will upgrade to an encrypted redo log that
is misleadingly carrying a MySQL 5.7.9 compatible format tag while
the log blocks (other than the header and the checkpoint blocks)
are in an incompatible, encrypted format.
That needs to be fixed by introducing a new redo log format tag that
indicates that the entire redo log is encrypted.
2017-02-07 11:55:16 +02:00
Marko Mäkelä
b40a1fbc93 MDEV-11782 WIP: Clean up the code, and add a test.
LOG_CHECKPOINT_ARRAY_END, LOG_CHECKPOINT_SIZE: Remove.

Change some error messages to refer to MariaDB 10.2.2 instead of
MySQL 5.7.9.

recv_find_max_checkpoint_0(): Do not abort when decrypting one of the
checkpoint pages fails.
2017-02-07 11:55:16 +02:00
Marko Mäkelä
c5fc3a903c MDEV-12004 InnoDB wrongly thinks that a column is indexed
after failed ADD UNIQUE INDEX

check_col_exists_in_indexes(): Add the parameter only_committed.
When considering committed indexes, evaluate index->is_committed().
Else, evaluate index->to_be_dropped.

rollback_inplace_alter_table(): Invoke check_col_exists_in_indexes()
with only_committed=true.
2017-02-07 11:55:16 +02:00
Jan Lindström
2aa47d9849 MDEV-11035: Restore removed disallow-writes for Galera
Galera disallow-writes feature was lost in InnoDB 5.7 merge
to 10.2. This patch restores this feature and fixes test
failure on test galera.galera_var_innodb_disallow_writes.
2017-02-07 11:36:36 +02:00
Igor Babaev
c16c9e8e76 Fixed bug mdev-11999.
This patch complements the patch for bug 11138.
Without this patch some table-less queries with window functions
could cause crashes due to a memory overwrite.
2017-02-06 22:12:53 -08:00
Sergei Petrunia
7468ccfadf Copy of
commit d1bb19b8f751875472211312c8e810143a7ba4b6
Author: Manuel Ung <mung@fb.com>
Date:   Fri Feb 3 11:50:34 2017 -0800

    Add cardinality stats to information schema

    Summary: This adds cardinality stats to the INFORMATION_SCHEMA.ROCKSDB_INDEX_FILE_MAP table. This is the only missing user collected properties from SST files that we don't expose, which is useful for debugging cardinality bugs.

    Reviewed By: hermanlee

    Differential Revision: D4509156

    fbshipit-source-id: 2d3918a
2017-02-06 17:39:08 +00:00
Marko Mäkelä
2f00b73a4b MDEV-11985 Make innodb_read_only shutdown more robust
If InnoDB is started in innodb_read_only mode such that
recovered incomplete transactions exist at startup
(but the redo logs are clean), an assertion will fail at shutdown,
because there would exist some non-prepared transactions.

logs_empty_and_mark_files_at_shutdown(): Do not wait for incomplete
transactions to finish if innodb_read_only or innodb_force_recovery>=3.
Wait for purge to finish in only one place.

trx_sys_close(): Relax the assertion that would fail first.

trx_free_prepared(): Also free recovered TRX_STATE_ACTIVE transactions
if innodb_read_only or innodb_force_recovery>=3.

Also, revert my earlier fix to MySQL 5.7 because this fix is more generic:

Bug#20874411 INNODB SHUTDOWN HANGS IF INNODB_FORCE_RECOVERY>=3
SKIPPED ANY ROLLBACK

trx_undo_fake_prepared(): Remove.

trx_sys_any_active_transactions(): Revert the changes.
2017-02-06 10:45:18 +02:00
Marko Mäkelä
a440d6ed3a MDEV-11948 innodb.log_file fails in buildbot on CentOS 5
Rewrite the test so that the main server is restarted, instead of
--exec $MYSQLD_CMD. In this way, the test can be run with Valgrind
and with any --mysqld=--innodb-page-size.

Also remove the workaround --skip-innodb-use-native-aio. It should
not be needed when we are inheriting the server parameters from
the test environment.
2017-02-06 10:45:18 +02:00