Commit graph

178554 commits

Author SHA1 Message Date
Marko Mäkelä
cfd51c01e1 Fix one more warning for page_header_get_field() 2017-09-14 08:06:40 +03:00
Marko Mäkelä
126a581b45 Fix warnings for page_header_get_field() comparisons
The type uint16_t is apparently promoted to int in a comparison,
causing a sign mismatch when comparing to ulint. Convert to ulint
before comparison.
2017-09-14 08:00:28 +03:00
Marko Mäkelä
88106ef352 Fix a warning for a debug assertion
The type uint16_t is apparently promoted to int in a comparison,
causing a sign mismatch when comparing to ulint.
Convert both operands to uint16_t.
2017-09-14 07:52:32 +03:00
Vincent Milum Jr
7f2fab0106 Fixes Galera on FreeBSD
Corrects the following error with rsync sst on FreeBSD:
WSREP_SST: [ERROR] rsync daemon port '4444' has been taken

The FreeBSD version of grep doesn't play nicely with the -w parameter mixed with [[:space:]] and ends up matching nothing. This causes the script to loop and attempt to spawn more than one instance of rsync, which fails with the initial instance already having the port open. Because of this, the entire script fails and no sst occurs resulting in the error message listed above appearing in the log file.
2017-09-13 10:48:10 -07:00
Marko Mäkelä
f5a833c3e0 Clean up the logging of virtual column values in table-rebuilding online ALTER
In online table-rebuilding ALTER TABLE (LOCK=NONE), virtual column values
are being written to the online_log. WL#8149 in MySQL 5.7 changed some
low-level functions that are also being used outside row0log.cc, causing
performance penalty to other code.

We revert those changes, and introduce separate functions for writing
the virtual column values.

The only functional change should be the one that is mentioned in
MDEV-13795: row_log_table_low_redundant() will no longer write
virtual column values along with old_pk, just like row_log_table_low().

As noted in MDEV-13795, some forms of table-rebuilding ALTER with
virtual columns is broken. At least DROP PRIMARY KEY, ADD PRIMARY KEY
is broken.

rec_get_converted_size_temp(), rec_convert_dtuple_to_temp():
Remove the parameter for passing virtual column values.

rec_get_converted_size_temp_v(), rec_convert_dtuple_to_temp_v():
New functions for appending virtual column values to the online_log.

rec_get_converted_size_comp_prefix_low(),
rec_convert_dtuple_to_rec_comp(): Remove the v_entry parameter,
and do not allow n_fields=0.
2017-09-13 16:14:37 +03:00
Marko Mäkelä
24062fed70 Remove the debug variables innodb_purge_stop_now, innodb_purge_run_now
The InnoDB purge subsystem can be best stopped by opening a read view,
for example by START TRANSACTION WITH CONSISTENT SNAPSHOT.

To ensure that everything is purged, use wait_all_purged.inc,
which waits for the History list length in SHOW ENGINE INNODB STATUS
to reach 0. Setting innodb_purge_run_now never guaranteed this.
2017-09-13 16:02:32 +03:00
Marko Mäkelä
d06e4fc6a3 Do not require a debug non-embedded server in the test
This also avoids hitting the hang at server shutdown.
That hang should be fixed, of course.
2017-09-13 16:02:31 +03:00
Marko Mäkelä
dd35fb35fa Return uint16_t instead of ulint 2017-09-13 16:02:31 +03:00
Alexander Barkov
250ca1c1d2 MDEV-13707 Server in ORACLE mode crashes on ALTER with wrong DEFAULT clause 2017-09-13 16:45:42 +04:00
Alexey Botchkov
dc82f70e9f MDEV-13633 JSON_ARRAY() - bad output with some UTF8 characters.
set_charset() calls added for Item_func_json_arran
        and Item_func_json_object::val_str-s.
2017-09-13 15:17:28 +04:00
Alexey Botchkov
a237a92099 MDEV-12877 Wrong result from JSON native function.
Set default charset for temporary paths so UDF call don't crash.
2017-09-13 00:36:09 +04:00
Alexey Botchkov
80a3837283 MDEV-12877 Wrong result from JSON native function.
JSON_QUOTE return type set to be JSON.
2017-09-12 19:15:31 +04:00
Alexey Botchkov
825c8d793d MDEV-12774 JSON_EXTRACT fails with some escaped unicode as key.
Tests added.
2017-09-12 17:30:46 +04:00
Alexey Botchkov
30db4e1fc7 MDEV-13786 compiler complains about uninitialized variable.
'=0' added to meke the compiler happy.
2017-09-12 15:33:30 +04:00
Alexey Botchkov
0cd731864e MDEV-13104 Json functions.
An extra ',' added to the JSON_MERGE result making it invalid.
2017-09-12 15:21:53 +04:00
Alexey Botchkov
467acc2119 MDEV-13324 JSON_SET returns NULL instead of object.
Superfluous ',' was added to the JSON_SET result so it became
        invalid.
2017-09-12 14:40:18 +04:00
Sergei Petrunia
49878be331 MDEV-13602: rocksdb.index_merge_rocksdb2 failed in buildbot
Part#2: stabilize the test output
2017-09-12 13:32:09 +03:00
Alexey Botchkov
594c6b37f3 MDEV-13138 JSON_OBJECT returns null with strings containing backticks.
Condition was fixed.
2017-09-12 13:26:03 +04:00
Marko Mäkelä
66a09bd6ab MDEV-13318 Crash recovery failure after the server is killed during innodb_encrypt_log startup
This fixes several InnoDB bugs related to innodb_encrypt_log and
two Mariabackup --backup bugs.

log_crypt(): Properly derive the initialization vector from the
start LSN of each block. Add a debug assertion.

log_crypt_init(): Note that the function should only be used when
creating redo log files and that the information is persisted in
the checkpoint pages.

xtrabackup_copy_log(): Validate data_len.

xtrabackup_backup_func(): Always use the chosen checkpoint buffer.

log_group_write_buf(), log_write_up_to(): Only log_crypt() the redo
log payload, not the padding bytes.

innobase_start_or_create_for_mysql(): Do not invoke log_crypt_init()
or initiate a redo log checkpoint.

recv_find_max_checkpoint(): Return the contents of LOG_CHECKPOINT_NO
to xtrabackup_backup_func() in log_sys->next_checkpoint_no.
2017-09-12 11:32:49 +03:00
Marko Mäkelä
8ee4b414ae Relax a too strict debug assertion for Mariabackup --prepare 2017-09-12 11:30:50 +03:00
Alexey Botchkov
ea876b39f3 MDEV-13716 point_big test fails in 10.2.
Implementation for the reverse spatial predicates was lost
        somehow.
2017-09-12 11:58:49 +04:00
Alexey Botchkov
6352ec2184 MDEV-12982 JSON_EXTRACT returns data for invalid JSON.
Let's check the validity to the end of the JSON.
2017-09-12 11:20:30 +04:00
Vladislav Vaintroub
31774f0ede MDEV-13563 lock DDL for mariabackup in 10.2
Implement lock-ddl-per-table option that locks tables before it
is copied to backup, and helds the lock until backup finished

The "DDL-lock" itself is implemented as "SELECT * from <table> LIMIT 0",
inside a transaction, and "COMMIT" of this transaction is the DDL-unlock.
2017-09-12 05:57:05 +00:00
Olivier Bertrand
bf34e9db7b Enable MONGO for the C driver. Modified: modified: storage/connect/CMakeLists.txt 2017-09-11 16:23:06 +02:00
Oleksandr Byelkin
6b5c0effe4 MDEV-13436 PREPARE doesn't work as expected & throws errors but MySQL is working fine
Now we allow derived in the from clause of subqueries so set
flag which prevent optimisation of subqueries during view
creation before derived processing so subquery will be
correctly printed in the view .frm.
2017-09-11 09:51:51 +02:00
Vladislav Vaintroub
65c94238f8 Merge branch 'bb-10.0-wlad' into 10.0 2017-09-09 10:55:47 +00:00
Vladislav Vaintroub
a46679dcf7 Build improvements and cleanups.
- the probably ultimate fix for dependencies on VS
- remove some GET_TARGET_PROPERTY(LOCATION ...), they are deprecated in
cmake 3.9
- simplify signing targets on Windows.
- remove INSTALL_DEBUG_TARGET, we do not mix binaries from different builds
in the same package
2017-09-08 18:22:15 +00:00
Marko Mäkelä
2425f2aedb MDEV-13626 Merge InnoDB test cases from MySQL 5.7 (part 1) 2017-09-08 15:38:02 +03:00
Marko Mäkelä
672590afaf Adjust the imported innodb.alter_crash test for MariaDB
trx_undo_assign_undo(): Restore the fault injection.
2017-09-08 15:34:42 +03:00
Marko Mäkelä
13d4dfd02c MDEV-13626 Merge InnoDB test cases from MySQL 5.7 (part 1)
Import the test innodb.alter_crash
2017-09-08 15:33:03 +03:00
Marko Mäkelä
95f602698a Make a test more robust
The redo log is divided into 512-byte blocks. Sometimes, some of
the strings end up at a block boundary and will not be found.
Look for only one match.
2017-09-08 09:38:42 +03:00
Vladislav Vaintroub
18e17f134c Windows : Fix MTR's misuse of servers --console parameter 2017-09-08 08:33:41 +02:00
Vladislav Vaintroub
d471469bd2 MDEV-13466 Implement --export option for MariaDB Backup
full server recovery is performed .
We start "mysqld" with  --bootstrap
and pass bootstrap script consisting of several FLUSH TABLES FOR export/
UNLOCK TABLES
2017-09-07 22:54:06 +00:00
Marko Mäkelä
d26fb96a9f Merge 10.1 into 10.2 2017-09-07 12:12:31 +03:00
Marko Mäkelä
112d721a74 Merge 10.0 into 10.1 2017-09-07 12:08:34 +03:00
Marko Mäkelä
d861822c4f MDEV-13253 After rebuilding redo logs, InnoDB can leak data from redo log buffer
recv_reset_logs(): Initialize the redo log buffer, so that no data
from the old redo log can be written to the new redo log.

This bug has very little impact before MariaDB 10.2. The
innodb_log_encrypt option that was introduced in MariaDB 10.1
increases the impact. If the redo log used to be encrypted, and
it is being resized and encryption disabled, then previously
encrypted data could end up being written to the new redo log
in clear text. This resulted in encryption.innodb_encrypt_log
test failures in MariaDB 10.2.
2017-09-07 12:01:07 +03:00
Marko Mäkelä
ee844f6c34 Make the SEARCH_ABORT logic actually work
The SEARCH_ABORT logic was not working as intended
(tests were not being aborted).
2017-09-07 11:59:26 +03:00
Marko Mäkelä
3ec8268b4a Follow-up to MDEV-13103: Do not add __attribute__((nonnull))
In XtraDB, buf_block_get_frame() can return NULL, and this value
can be passed to buf_page_print(). Do not declare the parameter
as nonnull.
2017-09-07 11:58:21 +03:00
Marko Mäkelä
3c45aa5895 Fix a typo to silence -Wimplicit-fallthrough 2017-09-06 19:32:56 +03:00
Marko Mäkelä
70db1e3b8a Merge 10.1 into 10.2 2017-09-06 19:28:51 +03:00
Marko Mäkelä
c59a52b7ba Fix nondeterministic failure of innodb.table_flags
The files ibtmp1 and ib_buffer_pool are sometimes created, sometimes not.
Remove them if they exist.
2017-09-06 19:10:12 +03:00
Marko Mäkelä
b429e8cada Mariabackup: Detach the threads at exit 2017-09-06 19:10:12 +03:00
Oleksandr Byelkin
2b387855df MDEV-13523: Group By in a View, called within a Stored Routine causes Error Code 1356 when a non-root user runs the routine for a second time
it is actually test suite for second code chunk fix in MDEV-13439
2017-09-06 17:20:31 +02:00
Marko Mäkelä
7008d46164 Follow-up to MDEV-13227: Shorten the test
The bug only affects ROW_FORMAT=DYNAMIC tables.
It is reproducible already with 2 records in the table.

Keep testing with ROW_FORMAT=REDUNDANT just in case.
2017-09-06 16:13:20 +03:00
Marko Mäkelä
a793b7fd8b Follow-up to MDEV-13227: Do not run unnecessary test combinations
The bug only affected innodb_page_size=64k. There is no point
running the test with smaller page sizes.
2017-09-06 15:57:42 +03:00
Marko Mäkelä
cd694d76ce Merge 10.0 into 10.1 2017-09-06 15:32:56 +03:00
Marko Mäkelä
6b45355e6b MDEV-13103 Assertion `flags & BUF_PAGE_PRINT_NO_CRASH' failed in buf_page_print
buf_page_print(): Remove the parameter 'flags',
and when a server abort is intended, perform that in the caller.

In this way, page corruption reports due to different reasons
can be distinguished better.

This is non-functional code refactoring that does not fix any
page corruption issues. The change is only made to avoid falsely
grouping together unrelated causes of page corruption.
2017-09-06 14:01:15 +03:00
Varun Gupta
80c90887fe MDEV-13585: RocksDB plugin fails to build on macOS because of unknown type timer_t etc.
Rdb_io_watchdog can not be built on  OS X. Disable it.
2017-09-05 23:00:59 +05:30
Sergei Petrunia
4ae200a97a Update test results for rocksdb.bulk_load_rev_cf_and_data 2017-09-05 18:28:05 +03:00
Olivier Bertrand
7e65bdba7b - Update version number
modified:   storage/connect/ha_connect.cc

- Regard columns with binary charset as string (was binary)
  modified:   storage/connect/ha_connect.cc
  modified:   storage/connect/tabmysql.cpp
  modified:   storage/connect/tabutil.cpp

- Support length 0 for CHAR and VARCHAR
  modified:   storage/connect/ha_connect.cc
  modified:   storage/connect/reldef.cpp
  modified:   storage/connect/value.cpp

- Add ACCEPT option for void columns in discovery
  modified:   storage/connect/tabjson.cpp

- Update some tests because of above change
  modified:   storage/connect/mysql-test/connect/r/json_java_2.result
  modified:   storage/connect/mysql-test/connect/r/json_java_3.result
  modified:   storage/connect/mysql-test/connect/r/json_mongo_c.result
  modified:   storage/connect/mysql-test/connect/r/mongo_c.result
  modified:   storage/connect/mysql-test/connect/r/mongo_java_2.result
  modified:   storage/connect/mysql-test/connect/r/mongo_java_3.result
  modified:   storage/connect/mysql-test/connect/r/odbc_oracle.result
  modified:   storage/connect/mysql-test/connect/r/updelx.result
  modified:   storage/connect/mysql-test/connect/t/mongo_test.inc
2017-09-04 22:32:02 +02:00