- 24 Apr, 2017 2 commits
-
-
Shaohua Wang authored
Analysis: When we access fts_internal_tbl_name in i_s_fts_config_fill (), it can be set to NULL by another session. Solution: Define fts_internal_tbl_name2 for global variable innodb_ft_aux_table, if it's NULL, set fts_internal_tbl_name to "default". Reviewed-by: Jimmy Yang <jimmy.yang@oracle.com> RB: 13401
-
Thirunarayanan Balathandayuthapani authored
Problem: ======= Inplace alter algorithm determines the table to be rebuild if the table undergoes row format change, key block size if handler flag contains only change table create option. If alter with inplace ignore flag operations and change table create options then it leads to table rebuild operation. Solution: ======== During the check for rebuild, ignore the inplace ignore flag and check for table create options. Reviewed-by: Jimmy Yang <jimmy.yang@oracle.com> Reviewed-by: Marko Makela <marko.makela@oracle.com> RB: 13172
-
- 23 Apr, 2017 1 commit
-
-
Igor Babaev authored
When the WHERE condition is always FALSE then JOIN::join_tab is NULL.
-
- 21 Apr, 2017 8 commits
-
-
Igor Babaev authored
This patch fixed some problems that occurred with subqueries that contained directly or indirectly recursive references to recursive CTEs. 1. A [NOT] IN predicate with a constant left operand and a non-correlated subquery as the right operand used in the specification of a recursive CTE was considered as a constant predicate and was evaluated only once. Now such a predicate is re-evaluated after every iteration of the process that produces the records of the recursive CTE. 2. The Exists-To-IN transformation could be applied to [NOT] IN predicates with recursive references. This opened a possibility of materialization for the subqueries used as right operands. Yet, materialization is prohibited for the subqueries if they contain a recursive reference. Now the Exists-To-IN transformation cannot be applied for subquery predicates with recursive references. The function st_select_lex::check_subqueries_with_recursive_references() is called now only for the first execution of the SELECT.
-
Marko Mäkelä authored
fil_compress_page(): Check for space==NULL.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
buf_flush_write_block_low(): Acquire the tablespace reference once, and pass it to lower-level functions. This is only a start; further calls may be removed. fil_decompress_page(): Remove unsafe use of fil_space_get_by_id().
-
Marko Mäkelä authored
fil_crypt_thread(): Do invoke fil_crypt_complete_rotate_space() when the tablespace is about to be dropped. Also, remove a redundant check whether rotate_thread_t::space is NULL. It can only become NULL when fil_crypt_find_space_to_rotate() returns false, and in that case we would already have terminated the loop. fil_crypt_find_page_to_rotate(): Remove a redundant check for space->crypt_data == NULL. Once encryption metadata has been created for a tablespace, it cannot be removed without dropping the entire tablespace.
-
Marko Mäkelä authored
On 64-bit Windows, sizeof(ulint)!=sizeof(ulong).
-
Marko Mäkelä authored
Alias the InnoDB ulint and lint data types to size_t and ssize_t, which are the standard names for the machine-word-width data types. Correspondingly, define ULINTPF as "%zu" and introduce ULINTPFx as "%zx". In this way, better compiler warnings for type mismatch are possible. Furthermore, use PRIu64 for that 64-bit format, and define the feature macro __STDC_FORMAT_MACROS to enable it on Red Hat systems. Fix some errors in error messages, and replace some error messages with assertions. Most notably, an IMPORT TABLESPACE error message in InnoDB was displaying the number of columns instead of the mismatching flags.
-
Marko Mäkelä authored
Define UNIV_WORD_SIZE as a simple alias to SIZEOF_SIZE_T. In MariaDB 10.0 and 10.1, it was incorrectly defined as 4 on 64-bit Windows. MONITOR_OS_PENDING_READS, MONITOR_OS_PENDING_WRITES: Enable by default. os_n_pending_reads, os_n_pending_writes: Remove. Use the monitor counters instead.
-
- 20 Apr, 2017 1 commit
-
-
Vladislav Vaintroub authored
Use older version of the SDK generally, because the newer ones break with older cmake. On Macs, use newer version, to fix mac specific the build error.
-
- 19 Apr, 2017 4 commits
-
-
Daniel Black authored
Update AWS SDK version from 1.0.8 to 1.0.100 Commit b64910ce (MDEV-12453) enabled AWS_SDK to build correctly on buildbot. Travis still had build faults like below despite many common elements between the builds; /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:79:9: error: no member named 'strcoll' in the global namespace; did you mean 'strtoll'? [ 24%] Building CXX object storage/rocksdb/CMakeFiles/rocksdblib.dir/rocksdb/db/internal_stats.cc.o using ::strcoll; ~~^ /usr/include/stdlib.h:169:3: note: 'strtoll' declared here strtoll(const char *__str, char **__endptr, int __base); ^
-
Marko Mäkelä authored
-
Marko Mäkelä authored
When MDEV-6076 repurposed the field PAGE_MAX_TRX_ID, it was assumed that the field always was 0 in the clustered index of old data files. This was not the case in IMPORT TABLESPACE (introduced in MySQL 5.6 and MariaDB 10.0), which is writing the transaction ID to all index pages, including clustered index pages. This means that on a data file that was at some point of its life IMPORTed to an InnoDB instance, MariaDB 10.2.4 or later could interpret the transaction ID as a persistent AUTO_INCREMENT value. This also means that future changes that repurpose PAGE_MAX_TRX_ID in the clustered index may cause trouble with files that were imported at some point of their life. There is a separate minor issue that InnoDB is writing PAGE_MAX_TRX_ID to every secondary index page, even though it is only needed on leaf pages. From now on we will write PAGE_MAX_TRX_ID as 0 to non-leaf pages, just to be able to keep stricter debug assertions. btr_root_raise_and_insert(): Reset the PAGE_MAX_TRX_ID field on non-root pages of the clustered index, and on the no-longer-leaf root page of secondary indexes. AbstractCallback::is_root_page(): Remove. Use page_is_root() instead. PageConverter::update_index_page(): Reset the PAGE_MAX_TRX_ID to 0 on other pages than the clustered index root page or secondary index leaf pages.
-
Jacob Mathew authored
Fixed handling of default values with cached temporal functions so that the CREATE TABLE statement now succeeds. Fixed virtual column session cleanup. Fixed the error message. Added quoting of date/time values in cases when this was omitted. Added a test case in default.test. Updated test result files.
-
- 17 Apr, 2017 6 commits
-
-
Jacob Mathew authored
Fixed the bug by failing the statement with an error message that explains that an auto-increment column may not be used in an expression for a check constraint. Added a test case in check_constraint.test. Updated existing tests and results.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
PARS_INTEGER_TOKEN: Remove. The lexer returns only PARS_INT_TOKEN. PARS_FIXBINARY_LIT, PARS_BLOB_LIT: Remove. These are never returned by the lexer. In sym_tab_add_bound_lit(), use PARS_STR_LIT.
-
Marko Mäkelä authored
dict_index_is_sec_or_ibuf(): Use a single arithmetic expression. rtr_split_page_move_rec_list(): Remove a redundant condition on dict_index_is_sec_or_ibuf(). This function is always invoked on a spatial index, which also is a secondary index.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Adjust a test result. When a too long index prefix is truncated, a note instead of a warning or error will be issued.
-
- 11 Apr, 2017 1 commit
-
-
Daniel Black authored
Remove clang-3.8 which doesn't have a repository on apt.llvm.org any more. For OSX, xcode8.3 is explicitly specified. /usr/local/Cellar is used as a cache repository to save brew install time on OSX (and /usr/local was too big). Debian autobake.sh is moved to a matrix include. Other branches of the matrix build test other test suites. An Ubuntu galera is downloaded and used in the test suite. TYPE=RelWithDebInfo used with the test to provide backtraces with line numbers when crashes occur. Build of PLUGIN_AWS_KEY_MANAGEMENT enabled in build. Code supporting TYPE=Debug and -DWITH_ASAN=ON included by not enabled due to large numbers of errors. Running more tests in parallel (6) as container based builds seem to support them. The test case timeout has been set to 2 minutes as large stalls will put test cases over 50 minute interval. ccache enabled where possible. Linux clang builds don't use them as the minimum CMake version isn't there.
-
- 09 Apr, 2017 1 commit
-
-
=Ian Gilfillan authored
-
- 07 Apr, 2017 11 commits
-
-
Vladislav Vaintroub authored
-
Oleksandr Byelkin authored
Data loss in case of partituon removing is documented => do not try to prevent it
-
Oleksandr Byelkin authored
In case of error on opening VIEW (absent table for example) it is still possible to print its definition but some variable is not set (table_list->derived->derived) so it is better do not try to test it when there is safer alternative (table_list itself).
-
Vladislav Vaintroub authored
link rocksdb with librt, for clock_gettime()
-
Marko Mäkelä authored
Also, merge some test changes from MySQL 5.7.10, for deprecating innodb_support_xa.
-
Sergei Golubchik authored
because on Windows it cannot properly append to the file, doesn't use CreateFile(..., FILE_APPEND_DATA, ...) this fixes main.shutdown failures on Windows
-
Sergei Golubchik authored
-
Sergei Golubchik authored
Annotate_rows_log_event again. When a new annotate event comes, the server applies it first (which backs up thd->query_string), then frees the old annotate event, if any. Normally there isn't. But with sub-statements (e.g. triggers) new annotate event comes before the first one is freed, so the second event backs up thd->query_string that was set by the first annotate event. Then the first event is freed, together with its query string. And then the second event restores thd->query_string to this freed memory. Fix: free old annotate event before applying the new one.
-
Sergei Golubchik authored
Annotate_rows_log_event should always restore thd->query_string if it was backed up. Even if the backed up value is NULL.
-
Sergei Golubchik authored
automatic shortening of a too-long non-unique key should be not a warning, but a note. It's a normal optimization, doesn't affect correctness, and should never be converted to an error, no matter how strict sql_mode is.
-
Vladislav Vaintroub authored
to fix build on Win64
-
- 06 Apr, 2017 5 commits
-
-
Vladislav Vaintroub authored
in MYSQL_ADD_PLUGIN, do not add TARGET_LINK_LIBRARIES twice for the LINK_LIBRARIES parameter It is usually harmless to add libraries twice. However, aws_key_management uses -Wl,-whole-archive to workaround linker issues on Linux If libraries are added twice with whole-archive, linking will fail complaining about duplicate symbols
-
Vladislav Vaintroub authored
use CMAKE_CXX_STANDARD to set C++11 flags with CMake 3.1+ (apples flags are somehow different from standard clang) port htonbe16/32/64 macros for rocksdb use reinterpret_cast<size_t> to cast macOS's pthread_t (pointer type) to size_t , for rocksdb
-
Igor Babaev authored
When a CTE referring to another CTE from the same with clause was used twice then the server could not find the second CTE and reported a bogus error message. This happened because for any unit that was created as a clone of a CTE specification the pointer to the WITH clause that owned this CTE was not set.
-
Daniel Black authored
-
Daniel Black authored
-