1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-30 05:23:50 +03:00
Commit Graph

178274 Commits

Author SHA1 Message Date
Olivier Bertrand
4d4ba60c6e - Fix MDEV-13463 unescape table name during detection of table structure
modified:   storage/connect/myconn.cpp

- Remove a few gcc warnings
  modified:   storage/connect/jmgoconn.cpp
  modified:   storage/connect/json.h
  modified:   storage/connect/tabjson.cpp
2017-08-08 17:36:54 +02:00
Sergei Golubchik
5099d6de61 MDEV-12863 No table can be created after second encryption plugin attempted to load
when deinitializing encryption plugins, disable server-wide encryption
only if this plugin is the one that is used for encryption.
2017-08-08 14:52:08 +02:00
Marko Mäkelä
ffa3789495 Follow-up to MDEV-11487: Remove InnoDB internal temporary tables
row_update_for_mysql(): Remove the wrapper function and
rename the function from row_update_for_mysql_using_upd_graph().
Remove the unused parameter mysql_rec.
2017-08-08 15:34:41 +03:00
Marko Mäkelä
c3f9fdeaf5 Add DBUG "trx" instrumentation that was used for catching MDEV-13470 2017-08-08 15:32:23 +03:00
Marko Mäkelä
2152fbdc89 MDEV-13470 DELETE IGNORE should not ignore deadlocks (again)
This is basically a duplicate or a reincarnation of MDEV-117.
For some reason, the test innodb.mdev-117 started failing in 10.2.

It is uncertain when this test started failing. The test is
nondeterministic, because there is a race condition between the
concurrently executing DELETE IGNORE and DELETE statements.

When a deadlock is reported for DELETE IGNORE, the SQL layer would
call handler::print_error() but then proceed to the next row,
as if no error had happened (which is the purpose of DELETE IGNORE).
So, when it proceeded to handler::ha_rnd_next(), InnoDB would hit an
assertion failure, because the transaction no longer exists, and we
are not executing at the start of a statement.

handler::print_error(): If thd_mark_transaction_to_rollback(thd, true)
was called, clear the ME_JUST_WARNING and ME_JUST_INFO errflags, so
that a note or warning will be promoted to an error if the transaction
was aborted by a storage engine.
2017-08-08 15:25:48 +03:00
Alexey Botchkov
4bca34d8a4 MDEV-12789 JSON_KEYS returns duplicate keys twice.
Check for duplicating keys added.
2017-08-08 15:40:11 +04:00
Alexey Botchkov
01a4eb8f76 MDEV-12732 json.json_no_table fails with valgrind in buildbot and
outside.

        The result_limit variable wasn't always initialized in
        Item_func_json_array::fix_length_and_dec().
2017-08-08 13:49:29 +04:00
Olivier Bertrand
017d9ccf5d Fix Linux compile error by #define NODW. Modified: plgdbutl.cpp 2017-08-08 11:32:35 +02:00
Sergei Golubchik
8e8d42ddf0 Merge branch '10.0' into 10.1 2017-08-08 10:18:43 +02:00
Sergei Golubchik
2395adfbfd ssl tests: update ciphers as in 10.2
to make tests pass on stretch with libssl1.0-dev
2017-08-08 09:56:38 +02:00
Sergei Golubchik
b7381526ab Always require OpenSSL 1.0 on Debian
auto-detecting whether it's called libssl-dev or libssl1.0-dev
2017-08-08 09:56:34 +02:00
Sergei Golubchik
1093c0f2dd disallow invalid values for WITH_SYSTEMD cmake variable. 2017-08-08 09:56:10 +02:00
Sergei Golubchik
e95d65d7d0 fix sporadic failures of perfschema.privilege_table_io
it used to fail if main.create_drop_role was run before it
2017-08-08 09:56:10 +02:00
Alexey Botchkov
bb71d9abf2 MDEV-12604 Comparison of JSON_EXTRACT result differs with Mysql.
Comparison fixed to take the actual type of JSON value into
        account. Bug in escaping handling fixed.
2017-08-08 10:35:26 +04:00
Marko Mäkelä
86e0a73eaa Remove wait_innodb_all_purged.inc
The file wait_innodb_all_purged.inc waited for InnoDB purge in a way
that only worked in debug builds. The file wait_all_purged.inc
provides a better mechanism.
2017-08-08 09:44:38 +03:00
Marko Mäkelä
03f3bdce5f Deterministically wait for purge using wait_all_purged.inc 2017-08-08 09:44:38 +03:00
Marko Mäkelä
6f623907cd Backport MDEV-13430 recovery improvement to MariaDB 10.2
If the latest InnoDB redo log checkpoint was stored in the
first checkpoint slot and not the second one, InnoDB would
incorrectly set log_sys->log.lsn to the previous checkpoint.

It is possible that this logic error did not exist before
commit 86927cc712, which
removed traces of multiple InnoDB redo logs, to prepare for
MDEV-12548 (Mariabackup for MariaDB 10.2). In the worst case,
this error could mean that InnoDB unnecessarily fails to
recover from redo log when the last-but-one checkpoint was
overwritten, but the last checkpoint is intact.

recv_find_max_checkpoint(), recv_find_max_checkpoint_0():
Do not overwrite the fields of log_sys->log with the information
of an older checkpoint.

recv_find_max_checkpoint(): Do not return DB_SUCCESS on an error.

recv_recovery_from_checkpoint_start(): Return early if the log is
in a version-tagged format but not in the latest format. (In this case,
the log must be logically empty, and there is nothing to apply.)
2017-08-08 09:44:38 +03:00
Jan Lindström
34eef269eb MDEV-11939: innochecksum mistakes a file for an encrypted one (page 0 invalid)
Always read full page 0 to determine does tablespace contain
encryption metadata. Tablespaces that are page compressed or
page compressed and encrypted do not compare checksum as
it does not exists. For encrypted tables use checksum
verification written for encrypted tables and normal tables
use normal method.

buf_page_is_checksum_valid_crc32
buf_page_is_checksum_valid_innodb
buf_page_is_checksum_valid_none
        Modify Innochecksum logging to file to avoid compilation
	warnings.

fil0crypt.cc fil0crypt.h
        Modify to be able to use in innochecksum compilation and
        move fil_space_verify_crypt_checksum to end of the file.
        Add innochecksum logging to file.

univ.i
        Add innochecksum strict_verify, log_file and cur_page_num
        variables as extern.

page_zip_verify_checksum
        Add innochecksum logging to file and remove unnecessary code.

innochecksum.cc
        Lot of changes most notable able to read encryption
        metadata from page 0 of the tablespace.

Added test case where we corrupt intentionally
FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION (encryption key version)
FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION+4 (post encryption checksum)
FIL_DATA+10 (data)
2017-08-08 09:41:09 +03:00
Kristian Nielsen
36e81a23c5 MDEV-11937: InnoDB flushes redo log too often
Problem was introduced with the InnoDB 5.7 merge, the code related to
avoiding extra fsync at the end of commit when binlog is enabled. The
MariaDB method for this was removed, but the replacement MySQL method
based on thd_get_durability_property() is not functional in MariaDB.

This commit reverts the offending parts of the merge and adds a test
case, to fix the problem for InnoDB. But other storage engines are
likely to have a similar problem.
2017-08-07 18:23:55 +02:00
Sergei Petrunia
5ae598390a Attempt to make rocksdb.rocksdb_parts stable 2017-08-07 18:12:24 +03:00
Sergei Petrunia
30c36b2c15 Make rocksdb.rocksdb_icp test stable 2017-08-07 17:25:11 +03:00
Olivier Bertrand
cdf00b8d92 - Fix bug returning pointer to a stack string
in JVALUE::GetString
  modified:   storage/connect/json.cpp
  modified:   storage/connect/json.h
  modified:   storage/connect/jsonudf.cpp

- Fix a compiler bug happening on some configuration and platforms
  in JSNX::CalculateArray
  modified:   storage/connect/jsonudf.cpp

- Set default Schema as current directory
  This fix several bugs like:
    Fail to make JSON catalog tables
    Fail to use zipped file made by a file LOAD
  modified:   storage/connect/reldef.cpp
  modified:   storage/connect/tabjson.cpp
  modified:   storage/connect/tabjson.h
2017-08-07 16:24:53 +02:00
Daniel Bartholomew
ef2e51c396 bump the VERSION 2017-08-07 10:09:23 -04:00
Sergei Petrunia
1fad491cff Merge branch '10.2' of github.com:MariaDB/server into 10.2 2017-08-07 16:13:17 +03:00
Sergei Petrunia
0b30ce4f31 MDEV-13374: Server crashes in first_linear_tab / st_select_lex::set_explain_type
- Support first_linear_tab() traversal for degenerate joins
2017-08-07 16:04:38 +03:00
Marko Mäkelä
dcdc1c6d09 MDEV-13452 Assertion `!recv_no_log_write' failed in log_reserve_and_open()
The debug flag recv_no_log_write prohibits writes of redo log records for
modifying page data. The debug assertion was failing when fil_names_clear()
was writing the informative MLOG_FILE_NAME and MLOG_CHECKPOINT records
which do not modify any data.

log_reserve_and_open(), log_write_low(): Remove the debug assertion.

log_pad_current_log_block(), mtr_write_log(),
mtr_t::Command::prepare_write(): Add the debug assertion.
2017-08-07 13:54:37 +03:00
Marko Mäkelä
a33220fbef MDEV-13451 Assertion `!recv_no_ibuf_operations' failed in ibuf_page_low()
During InnoDB startup, change buffer merge operations are prohibited
before recv_apply_hashed_log_recs(true), which performs the last phase
of redo log apply. Before this call, ibuf_init_at_db_start() would be
invoked, and it could trigger the debug assertion.

ibuf_init_at_db_start(): Do not declare the mini-transaction as
"inside change buffer", because nothing is being written in the
mini-transaction. The purpose of this function is only to initialize
the memory data structures from the persistent data structures.
2017-08-07 13:50:31 +03:00
Alexey Botchkov
f701ac65e9 MDEV-12324 Wrong result (phantom array value) on JSON_EXTRACT.
Fixed the path comparison.
2017-08-07 13:46:45 +04:00
Jan Lindström
2ef7a5a13a MDEV-13443: Port innochecksum tests from 10.2 innodb_zip suite to 10.1
This is basically port of WL6045:Improve Innochecksum with some
code refactoring on innochecksum.

Added page0size.h include from 10.2 to make 10.1 vrs 10.2 innochecksum
as identical as possible.

Added page 0 checksum checking and if that fails whole test fails.
2017-08-07 12:39:38 +03:00
Alexey Botchkov
4ff6ebf76a MDEV-12181 ST_AsGeoJSON argument does not limit decimals.
Options handling implemented for ST_AsGeoJSON.
2017-08-07 12:49:04 +04:00
Daniel Black
c508691a93 travis: add clang-5.0
Also removed clang-3.9

Signed-off-by: Daniel Black <daniel.black@au.ibm.com>
2017-08-07 10:05:01 +04:00
Monty
19f2b3d02f Fixed compiler warnings 2017-08-07 03:48:58 +03:00
Monty
74543698a7 MDEV-13179 main.errors fails with wrong errno
The problem was that the introduction of max-thread-mem-used can cause
an allocation error very early, even before mysql_parse() is called.
As mysql_parse() calls thd->reset_for_next_command(), which called
clear_error(), the error number was lost.

Fixed by adding an option to have unique messages for each KILL
signal and change max-thread-mem-used to use this new feature.
This removes a lot of problems with the original approach, where
one could get errors signaled silenty almost any time.

ixed by moving clear_error() from reset_for_next_command() to
do_command(), before any memory allocation for the thread.

Related changes:
- reset_for_next_command() now have an optional parameter if we should
  call clear_error() or not. By default it's called, but not anymore from
  dispatch_command() which was the original problem.
- Added optional paramater to clear_error() to force calling of
  reset_diagnostics_area(). Before clear_error() only called
  reset_diagnostics_area() if there was no error, so we normally
  called reset_diagnostics_area() twice.
- This change removed several duplicated calls to clear_error()
  when starting a query.
- Reset max_mem_used on COM_QUIT, to protect against kill during
  quit.
- Use fatal_error() instead of setting is_fatal_error (cleanup)
- Set fatal_error if max_thead_mem_used is signaled.
  (Same logic we use for other places where we are out of resources)
2017-08-07 03:48:58 +03:00
Sergei Petrunia
29ad628491 Merge branch '10.2' of github.com:MariaDB/server into bb-10.2-mariarocks 2017-08-06 23:58:05 +03:00
Olivier Bertrand
f5b0993bbd Fix Linux compile error by #define NODW. Modified: plgdbutl.cpp; typo Modified: odbconn.h 2017-08-06 22:01:18 +02:00
Olivier Bertrand
0387c13ee7 - Add a define making ha_connect.cc source unique for all MariaDB version.
#if defined(NEW_MAR)
#define stored_in_db stored_in_db()
#endif   // NEW_MAR)
  modified:   storage/connect/CMakeLists.txt
  modified:   storage/connect/ha_connect.cc

- Fix compile failure for some configuration of CONNECT.
This by updating the #ifdef's JDBC, MONGO and CMGO_SUPPORT.
  modified:   storage/connect/ha_connect.cc
  modified:   storage/connect/tabjson.cpp
  modified:   storage/connect/tabjson.h

- Fix failure of zip.test (restore code wrongly deleted)
  modified:   storage/connect/tabjson.cpp

- Make sure thread TBL table structure is correctly initialized.
  modified:   storage/connect/tabtbl.cpp

- Add new test case in tbl_thread.test
  modified:   storage/connect/mysql-test/connect/r/tbl_thread.result
  modified:   storage/connect/mysql-test/connect/t/tbl_thread.test

- Remake a jar file after Java was updated
  modified:   storage/connect/mysql-test/connect/std_data/Mongo3.jar
2017-08-06 19:56:57 +02:00
Sergei Petrunia
24a25a2c11 Merge branch '10.2' of github.com:MariaDB/server into bb-10.2-mariarocks 2017-08-06 15:37:27 +03:00
Sergei Petrunia
93a6eed607 Backport to 10.2: Make rocksdb.type_varchar test stable
It may produce test failures like this because of non-deterministic
cost calculations:

-1	SIMPLE	t1	#	col1	col1	259	NULL	#	Using where
+1	SIMPLE	t1	#	col1	NULL	NULL	NULL	#	Using where
2017-08-06 15:36:50 +03:00
Alexey Botchkov
11948d7586 MDEV-12180 ST_GeomFromGeoJSON option argument appears to have no effect.
Implement the 'option' argument for the ST_GeomFromGeoJSON.
2017-08-06 16:27:37 +04:00
Elena Stepanova
008786aedb MDEV-13456 main.create_drop_event fails sporadically in buildbot
Avoid race conditions between the test flow and events by waiting
for all started events to finish execution after switching off
event scheduler
2017-08-05 20:41:55 +03:00
Olivier Bertrand
d8f99f165b - Add FBLOCK when opening ODBC, JSON and MONGO tables.
This to have automatic closing in case of thrown error.
  modified:   storage/connect/cmgoconn.cpp
  modified:   storage/connect/cmgoconn.h
  modified:   storage/connect/filamzip.cpp
  modified:   storage/connect/javaconn.cpp
  modified:   storage/connect/javaconn.h
  modified:   storage/connect/odbconn.cpp
  modified:   storage/connect/odbconn.h
  modified:   storage/connect/plgdbsem.h
  modified:   storage/connect/plgdbutl.cpp

- Fix INCOL bug when inserting several lines to MONGO tables
  modified:   storage/connect/cmgoconn.cpp
  modified:   storage/connect/tabcmg.cpp
  modified:   storage/connect/tabjmg.cpp

- MONGO_SUPPORT is set for both MongoDB drivers
  CMGO_SUPPORT  is set only when the C driver is available
  modified:   storage/connect/CMakeLists.txt
  modified:   storage/connect/filter.h
  modified:   storage/connect/filter.h
  modified:   storage/connect/ha_connect.cc
  modified:   storage/connect/mongo.cpp
  modified:   storage/connect/mycat.cc
  modified:   storage/connect/tabjson.cpp
  modified:   storage/connect/tabjson.h

- Separate enums JCATINFO and
  modified:   storage/connect/javaconn.h
  modified:   storage/connect/jdbconn.cpp

- Fix crash when executing JDBC catfunc=driver
  modified:   storage/connect/jdbconn.cpp

- Report an error when the Mongo driver if explicitly
specified and not supported.
  modified:   storage/connect/mongo.cpp

- Fix bug causing catalog JSON tables to fail
  modified:   storage/connect/tabjson.cpp

- Protect by mutex the Ready variable of the TBLTBM table type
  modified:   storage/connect/tabtbl.cpp

- Put testing of Thread TBL tables in a separate test
With added case and modified old case that could avoid the test to fail.
  modified:   storage/connect/mysql-test/connect/r/tbl.result
  modified:   storage/connect/mysql-test/connect/t/tbl.test
  new file:   storage/connect/mysql-test/connect/r/tbl_thread.result
  new file:   storage/connect/mysql-test/connect/t/tbl_thread.test

- jmongo3.test no more exists
  deleted:    storage/connect/mysql-test/connect/t/jmongo3.test

- Add new tests for the MONGO feature (disabled)
  modified:   storage/connect/mysql-test/connect/disabled.def
  new file:   storage/connect/mysql-test/connect/r/json_java_2.result
  new file:   storage/connect/mysql-test/connect/r/json_java_3.result
  new file:   storage/connect/mysql-test/connect/r/json_mongo_c.result
  new file:   storage/connect/mysql-test/connect/r/mongo_c.result
  new file:   storage/connect/mysql-test/connect/r/mongo_java_2.result
  new file:   storage/connect/mysql-test/connect/r/mongo_java_3.result
  new file:   storage/connect/mysql-test/connect/std_data/Mongo2.jar
  new file:   storage/connect/mysql-test/connect/std_data/cities.json
  new file:   storage/connect/mysql-test/connect/t/json_java_2.test
  new file:   storage/connect/mysql-test/connect/t/json_java_3.test
  new file:   storage/connect/mysql-test/connect/t/json_mongo_c.test
  new file:   storage/connect/mysql-test/connect/t/mongo.inc
  new file:   storage/connect/mysql-test/connect/t/mongo_c.test
  new file:   storage/connect/mysql-test/connect/t/mongo_java_2.test
  new file:   storage/connect/mysql-test/connect/t/mongo_java_3.test
  new file:   storage/connect/mysql-test/connect/t/mongo_test.inc
2017-08-05 18:08:51 +02:00
Sergei Petrunia
7925a4bce8 More comments 2017-08-05 13:57:17 +00:00
Sergey Vojtovich
6d51817d2c Support for server error messages in Hindi
Include Hindi error messages to debian packages.
2017-08-04 13:33:48 +04:00
Vicențiu Ciorbaru
a346a5613e Merge branch 'bb-10.0-vicentiu' into 10.0
Includes Percona XtraDB and TokuDB 5.6.36-82.1
mariadb-10.0.32
2017-08-04 09:32:40 +02:00
Vicențiu Ciorbaru
d2a19082c0 Disable rpl_tokudb_row_img_* tests
We need to pull rpl config files from MySQL before these tests can be
run.
2017-08-04 04:27:33 +03:00
Elena Stepanova
d85d6c9c41 Remove extra trailing spaces from the result file 2017-08-04 02:11:10 +03:00
Elena Stepanova
e1aded1420 Additions to 10.0.32 unstable test list after TokuDB merge 2017-08-04 02:10:19 +03:00
Vicențiu Ciorbaru
8b0edbfb5e Merge branch 'merge-tokudb-5.6' into 10.0 2017-08-04 00:56:16 +03:00
Vicențiu Ciorbaru
d5164569e4 Move tokudb_rpl to rpl-tokudb suite 2017-08-03 22:15:19 +03:00
Monty
e35670f498 MDEV-12972 Random and Frequent Segfault
Problem was a memory overflow in MRR

Reviewed by Sergei Petruna. Testcase by Elena
2017-08-03 19:28:05 +03:00