- 15 May, 2018 12 commits
-
-
Marko Mäkelä authored
-
Oleksandr Byelkin authored
-
Alexander Barkov authored
These directives did not have any affect. All these affected lines: 1. | INTERVAL_SYM expr interval '+' expr 2. | INTERVAL_SYM '(' expr ',' expr ')' 3. | INTERVAL_SYM '(' expr ',' expr ',' expr_list ')' 4. | DATE_ADD_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' 5. | DATE_SUB_INTERVAL '(' expr ',' INTERVAL_SYM expr interval ')' define the grammar unambiguously. "bison -v sql_yacc.yy" produces exactly the same sql_yacc.output before and after the change.
-
Sergei Petrunia authored
It caused compile failures: commit 6620fbd6 Author: Teodor Mircea Ionita <teodor@mariadb.org> Date: Thu May 10 12:23:35 2018 +0300 MDEV-15778: On macOS pthread_t is opaque, requires explicit cast On macOS pthread id is a pointer to struct _opaque_pthread_t type, requires explicit cast to ulint which in turn is size_t; Was failing with Clang 9.1.0 Debug build on macOS 10.13.4: sync0policy.h:53:4: error: cannot initialize a member subobject of type 'ulint' (aka 'unsigned long') with an rvalue of type 'os_thread_id_t' (aka '_opaque_pthread_t *') m_thread_id(os_thread_id_t(ULINT_UNDEFINED)) ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sync0policy.h:79:4: error: cannot initialize a parameter of type 'int64' (aka 'long long') with an rvalue of type 'os_thread_id_t' (aka '_opaque_pthread_t *') my_atomic_storelint(&m_thread_id, os_thread_get_curr_id());
-
Oleksandr Byelkin authored
MDEV-15576: Server crashed in Cached_item_str::cmp / sortcmp or Assertion `item->null_value' failed in Type_handler_temporal_result::make_sort_key upon SELECT with NULLIF and ROLLUP Fixed null_value processing and is_null() usage.
-
Monty authored
Problem was that I in a previous patch enabled ifdef:ed code intended for 10.3 but that never worked. Reverted to original code
-
Monty authored
MDEV-654 Assertion `share->now_transactional' failed in flush_log_for_bitmap on concurrent workload with Aria tables I was able to repeat the problem with old version of randgen Reason for crash: - It's not safe to change share->now_transactional if there are changed bitmaps in the pagecache as flushing these can cause redo-entries and the bitmap flush code checks that share->now_transactional is set. Fixed by flushing bitmaps in _ma_tmp_disable_logging_for_table() before we set share->now_transactional to 0
-
Alexey Botchkov authored
MDEV-15465 Server crash or ASAN heap-use-after-free in Item_func_match::cleanup upon using FT search with partitioning. Partition engine FT keys are implemented in such a way that the FT function's cleanup() methods use table's internals. So calling them after close_thread_tables is unsafe.
-
Sergei Petrunia authored
MDEV-15778: 10.3 macOS build fixes
-
Sachin Setiya authored
Fix mysql_load iterator to skip invisible fields.
-
Alexander Barkov authored
MDEV-16100 FOR SYSTEM_TIME erroneously resolves string user variables as transaction IDs Problem: Vers_history_point::resolve_unit() tested item->result_type() before item->fix_fields() was called. - Item_func_get_user_var::result_type() returned REAL_RESULT by default. This caused MDEV-16100. - Item_func_sp::result_type() crashed on assert. This caused MDEV-16094 Changes: 1. Adding item->fix_fields() into Vers_history_point::resolve_unit() before using data type specific properties of the history point expression. 2. Adding a new virtual method Type_handler::Vers_history_point_resolve_unit() 3. Implementing type-specific Type_handler_xxx::Type_handler::Vers_history_point_resolve_unit() in the way to: a. resolve temporal and general purpose string types to TIMESTAMP b. resolve BIT and general purpose INT types to TRANSACTION c. disallow use of non-relevant data type expressions in FOR SYSTEM_TIME Note, DOUBLE and DECIMAL data types are disallowed intentionally. - DOUBLE does not have enough precision to hold huge BIGINT UNSIGNED values - DECIMAL rounds on conversion to INT Both lack of precision and rounding might potentionally lead to very unpredictable results when a wrong transaction ID would be chosen. If one really wants dangerous use of DOUBLE and DECIMAL, explicit CAST can be used: FOR SYSTEM_TIME AS OF CAST(double_or_decimal AS UNSIGNED) QQ: perhaps DECIMAL(N,0) could still be allowed. 4. Adding a new virtual method Item::type_handler_for_system_time(), to make HEX hybrids and bit literals work as TRANSACTION rather than TIMESTAMP. 5. sql_yacc.yy: replacing the rule temporal_literal to "TIMESTAMP TEXT_STRING". Other temporal literals now resolve to TIMESTAMP through the new Type_handler methods. No special grammar needed. This removed a few shift/resolve conflicts. (TIMESTAMP related conflicts in "history_point:" will be removed separately) 6. Removing the "timestamp_only" parameter from vers_select_conds_t::resolve_units() and Vers_history_point::resolve_unit(). It was a hint telling that a table did not have any TRANSACTION-aware system time columns, so it's OK to resolve to TIMESTAMP in case of uncertainty. In the new reduction it works as follows: - the decision between TIMESTAMP and TRANSACTION is first made based only on the expression data type only - then, in case if the expression resolved to TRANSACTION, the table is checked if TRANSACTION-aware columns really exist. This way is safer against possible ALTER TABLE statements changing ROW START and ROW END columns from "BIGINT UNSIGNED" to "TIMESTAMP(x)" or the other way around.
-
Igor Babaev authored
-
- 14 May, 2018 7 commits
-
-
Jacob Mathew authored
This problem occured because the reorganization of the list of values when the number of elements exceeds 32 was not handled correctly. I have fixed the problem by fixing the way that the list values are reorganized when the number of list values exceeds 32. Author: Jacob Mathew. Reviewer: Alexey Botchkov. Merged From: Branch bb-10.3-MDEV-16101
-
Igor Babaev authored
Forced columns of recursive CTEs to be nullable. SQL standard requires this only from recursive columns, but in our code so far we do not differentiate between recursive and non-recursive columns when aggregating types of the union that specifies a recursive CTE.
-
Jacob Mathew authored
This problem occured because the reorganization of the list of values when the number of elements exceeds 32 was not handled correctly. I have fixed the problem by fixing the way that the list values are reorganized when the number of list values exceeds 32. Author: Jacob Mathew. Reviewer: Alexey Botchkov.
-
Alexander Barkov authored
-
Michael Widenius authored
Problem was that we used table->s->db_type() for accessing handlerton of opened file instead of table->file->ht Other bug fixed: - Ensure that we set error if reopen_tables() fails (This was the cause of assert)
-
Michael Widenius authored
-
Michael Widenius authored
-
- 12 May, 2018 21 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The predicate dict_table_is_discarded() checks whether ALTER TABLE…DISCARD TABLESPACE has been executed. Replace most occurrences of dict_table_is_discarded() with checks of dict_table_t::space. A few checks for the flag DICT_TF2_DISCARDED are necessary; write them inline. Because !is_readable() implies !space, some checks for dict_table_is_discarded() were redundant.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Sergei Golubchik authored
-
Eugene Kosov authored
Fixed by using exactly the same filtering conditions as specified by standard in 7.6 <table reference> General Rules
-
Aleksey Midenkov authored
MDEV-14823 Wrong error message upon selecting from a system_time partition MDEV-15956 Strange ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN upon ALTER on versioning column
-
Aleksey Midenkov authored
MDEV-16043 Assertion thd->Item_change_list::is_empty() failed in mysql_parse upon SELECT from a view reading from a versioned table Lost restore_active_arena(). Using of Query_arena_stmt is suggested instead.
-
Sergei Golubchik authored
-
Aleksey Midenkov authored
Store transaction start time in thd->transaction.start_time. THD::transaction_time() wraps over transaction.start_time taking into account current status of BEGIN.
-
Aleksey Midenkov authored
-
Aleksey Midenkov authored
-
Eugene Kosov authored
-
Eugene Kosov authored
-
Sergei Golubchik authored
Don't use hidden system time in versioning, but keep the system time logic in THD to workaround low-res system clock and replication not versioned to versioned. This reverts MDEV-14788 (System versioning cannot be based on local timestamps, as it is now). Versioning is based on local timestamps again, but timestamps are protected by MDEV-15923 (option to control who can set session @@timestamp).
-
Sergei Golubchik authored
--secure-timestamp=NO|SUPER|REPLICATION|YES
-
Sergei Golubchik authored
remove the redundant declaration tail
-
Sergei Golubchik authored
-
Sergei Golubchik authored
this is always enabled now, no need for a conditional
-
Sergei Golubchik authored
-
Sergei Golubchik authored
rename LString/XString classes, remove unused ones
-