Commit graph

19086 commits

Author SHA1 Message Date
Vladislav Vaintroub
298c56cd6a Fix "ib::fatal::~fatal': destructor never returns, potential memory leak"
warning
2017-09-29 18:15:57 +00:00
Vladislav Vaintroub
96b9c61787 MDEV-13941 Fix high NTFS fragmentation on 10.2
Prior to this patch, creating or even opening any innodb file in 10.2
would set a sparse flag on file. The file extension was done by setting
end of file, without writing zeros. This technique is fine, however
due to sparsedness, it created a hole at the end of the file, which
lead to much higher fragmentation subsequently.

The fix is only to use sparse flag for compressed tables, where holes
are actually wanted, but not for normal tables.
2017-09-29 17:29:21 +00:00
Marko Mäkelä
7cd4a66de6 Remove unused parameters and dead code
upd_field_set_field_no(): Remove the unused parameter trx, and
remove a debug message. In debug builds, the out-of-bounds access
would still be caught by dict_index_get_nth_col().

trx_undo_update_rec_get_update(): Remove the unnecessary parameter trx.
2017-09-29 16:19:28 +03:00
Marko Mäkelä
358ab5d6b1 Remove remaining references to InnoDB native partitioning
The InnoDB native partitioning (ha_innopart) is a MySQL 5.7
code refactoring exercise that was not merged to MariaDB.
2017-09-29 15:45:58 +03:00
Vladislav Vaintroub
ccf21c9962 fix some conversion warnings 2017-09-28 17:20:46 +00:00
Vladislav Vaintroub
7354dc6773 MDEV-13384 - misc Windows warnings fixed 2017-09-28 17:20:46 +00:00
Vladislav Vaintroub
509928718d MDEV-13384 Fix Windows warnings. thd_alloc functions now use size_t parameters
Fixes some warnings in popular headers.
2017-09-28 17:20:46 +00:00
Vladislav Vaintroub
eba44874ca MDEV-13844 : Fix Windows warnings. Fix DBUG_PRINT.
- Fix win64 pointer truncation warnings
(usually coming from misusing 0x%lx and long cast in DBUG)

- Also fix printf-format warnings

Make the above mentioned warnings fatal.

- fix pthread_join on Windows to set return value.
2017-09-28 17:20:46 +00:00
Marko Mäkelä
de7c2e5e54 Avoid implicit conversion from unsigned to signed 2017-09-28 15:12:00 +03:00
Monty
5a0cd753be Added missing test if table is transactional or not in Aria
- The line was accidently removed by dd8474b1dc
- The effect of the missing test was just a few extra malloc when creating
  internal temporary tables. Nothing critical, but better got get fixed.
2017-09-28 11:59:28 +03:00
Monty
06f7a7620f Fixed compiler warning 2017-09-27 22:19:39 +03:00
Eugene Kosov
fd2c5d19d0 fix a data race
reapply 6192f0bffa

TSAN warnings count decreased from 206 to 195
2017-09-27 13:47:56 +04:00
Marko Mäkelä
7dcb8816a1 Merge 10.1 into 10.2 2017-09-25 13:46:54 +03:00
Marko Mäkelä
84be33abe0 Merge 10.0 into 10.1 2017-09-25 09:50:24 +03:00
Marko Mäkelä
21614f4a85 MDEV-13898 Corruption during online table-rebuilding ALTER of ROW_FORMAT=REDUNDANT tables
This bug is a regression caused by the code refactoring in
commit f5a833c3e0. It was not present
in any release of the MariaDB server. The bug affects table-rebuilding
ALTER TABLE when the source table is in ROW_FORMAT=REDUNDANT and
contains no virtual columns.

row_log_table_low_redundant(): Log virtual column data only if
virtual columns are present.
2017-09-25 09:29:27 +03:00
Varun Gupta
ea2162b6aa MDEV-11846: ERROR 1114 (HY000) table full when performing GROUP BY
The problem is there is an overflow for the key_file_length.
Added the maximum limit for the key_file_length
2017-09-24 23:33:44 +05:30
Marko Mäkelä
78b63425a3 MDEV-13899 IMPORT TABLESPACE may corrupt ROW_FORMAT=REDUNDANT tables
The ALTER TABLE…IMPORT TABLESPACE adjustment code that was introduced by
WL#5522 in MySQL 5.6 is incorrectly invoking rec_get_status() on a
ROW_FORMAT=REDUNDANT record to determine if a record is a leaf page record.
The function rec_get_status(rec) is only to be called on
ROW_FORMAT=COMPACT, DYNAMIC or COMPRESSED records.
2017-09-24 10:11:16 +03:00
Vladislav Vaintroub
7128fefa4c Fix compile with -DWITHOUT_DYNAMIC_PLUGINS on Unix 2017-09-23 23:23:05 +02:00
Sergei Golubchik
ca3c8d9b58 shut out Connect cmake-time warning about missing Findlibmondgodoc.cmake 2017-09-22 14:01:27 +02:00
Marko Mäkelä
e0ebe3d083 Merge 10.0 into 10.1 2017-09-22 10:31:49 +03:00
Marko Mäkelä
f6cb4f0a19 MDEV-13814 Extra logging when innodb_log_archive=ON
log_group_read_log_seg(): Only display the message during recovery,
not during normal operation. When the XtraDB configuration parameter
innodb_log_archive is set, this function will be called during
normal operation.
2017-09-22 10:28:14 +03:00
Sergei Golubchik
f1ce69f3a9 Merge branch '10.1' into 10.2
But without f4f48e06215..f8a800bec81 - fixes for MDEV-12672
and related issues. 10.2 specific fix follows...
2017-09-22 02:27:00 +02:00
Sergei Golubchik
2e3a16e366 Merge branch '10.0' into 10.1 2017-09-21 22:02:21 +02:00
Sergei Golubchik
cb1b466c0c CONNECT: compilation fix
tabtyp was defined under ODBC_SUPPORT, but used
outside of it too (under JDBC_SUPPORT).
2017-09-21 21:43:07 +02:00
Monty
0a44ae6528 Fix that FLUSH TABLES FOR EXPORT also works for Aria tables.
- Added missing test case for MyISAM
2017-09-21 16:34:48 +03:00
Marko Mäkelä
05da63f048 Correct debug assertions
Node pointer recors contain dict_index_get_n_unique_in_tree_nonleaf(index)+1
instead of index->n_uniq+1 fields.

rec_get_offsets_func(): Remove the incorrect assertion. Later in
the function there are assertion for checking the exact field count.
2017-09-21 12:05:51 +03:00
Marko Mäkelä
02de2385a2 page_rec_is_leaf(): Fix sign mismatch warnings 2017-09-21 10:15:27 +03:00
Marko Mäkelä
9c373d4d1d Fix bogus rec_get_offsets() debug assertion failures for ROW_FORMAT=REDUNDANT
When the debug parameter 'bool leaf' was added to rec_get_offsets(),
also some debug assertions for reading the heap_no of ROW_FORMAT=REDUNDANT
records were added. However, the heap number is uninitialized when
offsets are being computed for to-be-inserted records.

For debug builds, initialize the heap number to a dummy value, so that
the record will be interpreted as 'user record'. The infimum and supremum
pseudo-records are never copied from the page frame and never inserted;
they are part of the page creation.

rec_convert_dtuple_to_rec_old(): Remove a bogus memset() in debug builds.
2017-09-21 10:14:30 +03:00
Marko Mäkelä
c9c1adc649 Avoid comparison of unsigned to signed 2017-09-21 08:21:06 +03:00
Marko Mäkelä
47cd984a3a Fix ut_ad(!leaf) failure in rec_get_offsets_func() with spatial index
This fixes a regression that only affects debug builds, caused by
commit 48192f963a which is necessary
preparation for MDEV-11369 instant ADD COLUMN. (Although that is a
10.3 task, to ease merges between 10.2 and 10.3, this change that
improves debug checks was pushed to 10.2 already.)

Unlike btr_pcur_restore_position(), rtr_cur_restore_position()
can create a search tuple out of a non-leaf page record. So,
we must pass 'bool leaf' parameter to dict_index_build_data_tuple().

dict_index_build_data_tuple(): Add a debug-only parameter 'bool leaf'.

rec_copy_prefix_to_dtuple(): Make the parameter debug-only.

row_sel_get_clust_rec_for_mysql(): In the debug code for spatial index,
remove an unnecessary call to buf_page_get_gen(), and use the already
latched block directly.
2017-09-20 22:38:37 +03:00
Marko Mäkelä
a1e47974b7 Avoid comparison of unsigned to signed 2017-09-20 18:10:01 +03:00
Sergei Golubchik
8f3fd98d25 connect fixes after-merge
disable Mongo in 10.0, compiler warnings.
2017-09-20 17:07:05 +02:00
Marko Mäkelä
96f06f952d MDEV-13847 Allow ALTER TABLE…ADD SPATIAL INDEX…ALGORITHM=INPLACE
MDEV-13851 Always check table options in ALTER TABLE…ALGORITHM=INPLACE

In the merge of MySQL 5.7.9 to MariaDB 10.2.2, some code was included
that prevents ADD SPATIAL INDEX from being executed with ALGORITHM=INPLACE.

Also, the constant ADD_SPATIAL_INDEX was introduced as an alias
to ADD_INDEX. We will remove that alias now, and properly implement
the same ADD SPATIAL INDEX restrictions as MySQL 5.7 does:

1. table-rebuilding operations are not allowed if SPATIAL INDEX survive it
2. ALTER TABLE…ADD SPATIAL INDEX…LOCK=NONE is not allowed

ha_innobase::prepare_inplace_alter_table(): If the ALTER TABLE
requires actions within InnoDB, enforce the table options (MDEV-13851).
In this way, we will keep denying ADD SPATIAL INDEX for tables
that use encryption (MDEV-11974), even if ALGORITHM=INPLACE is used.
2017-09-20 16:53:34 +03:00
Marko Mäkelä
e53e58d4e4 Add a missing const qualifier 2017-09-20 16:53:34 +03:00
Marko Mäkelä
48192f963a Add the parameter bool leaf to rec_get_offsets()
This should affect debug builds only. Debug builds will check that
the status bits of ROW_FORMAT!=REDUNDANT records match the is_leaf
parameter.

The only observable change to non-debug should be the addition of
the is_leaf parameter to the function rec_copy_prefix_to_dtuple(),
and the removal of some calls to update the adaptive hash index
(it is only built for the leaf pages).

This change should have been made in MySQL 5.0.3, instead of
introducing the status flags in the ROW_FORMAT=COMPACT record header.
2017-09-20 16:53:34 +03:00
Vicențiu Ciorbaru
246d321f67 Merge branch '10.2' of github.com:MariaDB/server into 10.2 2017-09-20 10:33:13 +03:00
Marko Mäkelä
c53f57c390 Remove DICT_UNIVERSAL
The only universal index in InnoDB was the change buffer.
It suffices to keep the DICT_IBUF flag (which, like DICT_UNIVERSAL,
is not written to any persistent data structure).
2017-09-20 08:44:40 +03:00
Marko Mäkelä
6b687a0fde Introduce page_rec_is_leaf() and clean up page0page.h
Define some page accessor functions inline in page0page.h,
reducing code duplication in page0page.ic.

Use page_rec_is_leaf() instead of page_is_leaf() where possible.
2017-09-20 08:42:44 +03:00
Vicențiu Ciorbaru
5b9c32ede0 Merge remote-tracking branch 'connect/10.2' into 10.2 2017-09-19 15:13:53 +03:00
Vicențiu Ciorbaru
22c322c649 Merge branch '10.1' into 10.2 2017-09-19 12:43:02 +03:00
Vicențiu Ciorbaru
ec6042bda0 Merge branch '10.0' into 10.1 2017-09-19 12:06:50 +03:00
Vicențiu Ciorbaru
b337a06829 Revert d9bc5e03d788b958ce8c76e157239953db60adb2 from Oracle (in XtraDB) 2017-09-19 11:53:59 +03:00
Vicențiu Ciorbaru
dab6f56098 Revert Bug #25175249 ASSERTION: (TEMPL->IS_VIRTUAL && !FIELD) || (FIELD && FIELD->PREFIX_LEN ? FIELD
We don't want this in innodb/xtradb
2017-09-19 11:46:38 +03:00
Vicențiu Ciorbaru
cbd62feee5 Merge branch 'merge-xtradb-5.6' into 10.0 2017-09-19 11:35:09 +03:00
Vicențiu Ciorbaru
745cd57ae7 Merge branch 'merge-tokudb-5.6' into 10.0 2017-09-19 11:18:17 +03:00
Vicențiu Ciorbaru
0e15396341 Fix fall-through warning 2017-09-19 11:17:35 +03:00
Vicențiu Ciorbaru
618d8fdf37 5.6.37-82.2 2017-09-19 10:58:12 +03:00
Vicențiu Ciorbaru
b2c0cca6b0 Fix connect merge problems
* CMakeLists.txt erroneous duplicated lines.
* Unneded differences in tabjson.cpp
* Unneded space differences in jdbconn.{cpp|h}
2017-09-19 09:37:17 +03:00
Vicențiu Ciorbaru
df2675a9cc Merge connect/10.0 into 10.0
This is a squashed merge.
2017-09-19 02:05:11 +03:00
Vicențiu Ciorbaru
b4606367d7 5.6.37-82.2 2017-09-19 00:44:27 +03:00