An error occurred fetching the project authors.
- 03 Jun, 2018 1 commit
-
-
Eugene Kosov authored
MDEV-15991 Server crashes in setup_on_expr upon calling SP or function executing DML on versioned tables Do not try to set versioning conditions on every SP call. It may work incorrectly, but it's a general bug described in MDEV-774. This patch makes system versioning stuff consistent with other code and also fixes a use-after-free bug. Closes #756
-
- 15 May, 2018 1 commit
-
-
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.
-
- 12 May, 2018 2 commits
-
-
Eugene Kosov authored
Fixed by using exactly the same filtering conditions as specified by standard in 7.6 <table reference> General Rules
-
Eugene Kosov authored
-
- 10 Apr, 2018 1 commit
-
-
Sergei Golubchik authored
MDEV-15391 Server crashes in JOIN::fix_all_splittings_in_plan or Assertion `join->best_read < double(1.79...e+308L)' failed vers_setup_conds() used to AND all conditions on row_start/row_end columns and store it either in the WHERE clause or in the ON clause for some table. In some cases this caused ON clause to have conditions for tables that aren't part of that ON's join. Fixed to put a table's condition always in the ON clause of the corresponding table. Removed unnecessary ... `OR row_end IS NULL` clause, it's not needed in the ON clause. Simplified handling on PS and SP.
-
- 23 Feb, 2018 3 commits
-
-
Sergei Golubchik authored
Remove 1668efb7 that introduced a special magic behavior for UNIX_TIMESTAMP() in the AS OF context
-
Sergei Golubchik authored
and delete few garbage-in-garbage-out tests
-
Aleksey Midenkov authored
* TIMESTAMP precedence fixed.
-
- 12 Jan, 2018 1 commit
-
-
Eugene Kosov authored
-
- 09 Jan, 2018 3 commits
-
-
Sergei Golubchik authored
sys_trx_start -> row_start sys_trx_end -> row_end
-
Sergei Golubchik authored
remove unused error messages reword ER_VERS_SYS_FIELD_NOT_HIDDEN->ER_VERS_SYS_FIELD_EXISTS
-
Sergei Golubchik authored
Many related changes. Note that AS OF condition must always be pushed down to physical tables, it cannot be applied to a derived or a view. Thus: * no versioning for internal temporary tables, they can never store historical data. * remove special versioning code from mysql_derived_prepare and remove ER_VERS_DERIVED_PROHIBITED - derived can have no historical data and cannot be prohibited for system versioning related reasons. * do not expand select list for derived/views with sys vers fields, derived/views can never have historical data. * remove special invisiblity rules for sys vers fields, they are no longer needed after the previous change * remove system_versioning_hide, it lost the meaning after the previous change. * remove ER_VERS_SYSTEM_TIME_CLASH, it's no "clash", the inner AS OF clause always wins. * non-versioned fields in a historical query reword the warning text, downgrade to note, don't replace values with NULLs
-
- 19 Dec, 2017 2 commits
-
-
Aleksey Midenkov authored
ER_VERS_NOT_VERSIONED vs ER_VERSIONING_REQUIRED
-
Aleksey Midenkov authored
-
- 18 Dec, 2017 1 commit
-
-
Aleksey Midenkov authored
* Removed integer_fields check * Reworked Vers_parse_info::check_sys_fields() * Misc renames * versioned as vers_sys_type_t * Removed versioned_by_sql(), versioned_by_engine() versioned() works as before; versioned(VERS_TIMESTAMP) is versioned_by_sql(); versioned(VERS_TRX_ID) is versioned_by_engine(). * create_tmp_table() fix * Foreign constraints for timestamp-based * Range auto-specifier fix * SQL: 1-row partition rotation fix [fixes #260] * Fix 'drop system versioning, algorithm=inplace'
-
- 15 Dec, 2017 1 commit
-
-
Aleksey Midenkov authored
-
- 14 Dec, 2017 3 commits
-
-
Aleksey Midenkov authored
SQL: reverted NATURAL JOIN fix #161 (deprecated by #383)
-
Aleksey Midenkov authored
-
Aleksey Midenkov authored
-
- 13 Dec, 2017 1 commit
-
-
Sergei Golubchik authored
non-standard, redundant, potentially risky in the future, hides bugs. See #383, #384, #385 Fixed a parser bug where SELECT * FROM (t1 join t2) FOR SYSTEM_TIME ... was not an error.
-
- 08 Dec, 2017 2 commits
-
-
Aleksey Midenkov authored
Renamed to SELECT_LEX::vers_setup_conds(). Moved optimized fields check to JOIN::vers_check_items().
-
Aleksey Midenkov authored
Tests affected (forced mode): main.range main.range_mrr_icp
-
- 05 Dec, 2017 3 commits
-
-
Sergei Golubchik authored
SELECT * FROM t1 FOR SYSTEM_TIME AS OF ... becomes ambiguous, but it's the same as with SELECT ... UNION SELECT ... ORDER BY ...
-
Aleksey Midenkov authored
Applicable to vanilla version. Applies to Item_cond_and, etc.: items with allocating copy_andor_structure(). Tests affected (forced mode): main.subselect_sj main.subselect_sj_jcl6
-
Aleksey Midenkov authored
Tests affected (forced mode): main.ps \ main.user_var \ main.myisam_explain_non_select_all \ main.opt_tvc \ main.subselect \ main.subselect_no_exists_to_in \ main.derived \ main.derived_opt \ main.update
-
- 03 Dec, 2017 1 commit
-
-
Aleksey Midenkov authored
-
- 30 Nov, 2017 2 commits
-
-
Aleksey Midenkov authored
Affected tests (forced mode): main.index_merge_myisam After optimization versioning AND takes operands from WHERE AND leaving `select_lex->where` as empty dangling AND.
-
Aleksey Midenkov authored
Affected tests (forced mode): main.win main.selectivity_innodb main.subselect_cache main.analyze_stmt_orderby Related to #226 (909867d0).
-
- 18 Aug, 2017 1 commit
-
-
Eugene Kosov authored
-
- 08 Aug, 2017 1 commit
-
-
Aleksey Midenkov authored
-
- 03 Aug, 2017 1 commit
-
-
Aleksey Midenkov authored
-
- 12 Jul, 2017 1 commit
-
-
Aleksey Midenkov authored
Eliminated `QUERY FOR`.
-
- 03 Jul, 2017 1 commit
-
-
Aleksey Midenkov authored
-
- 05 May, 2017 7 commits
-
-
Aleksey Midenkov authored
-
kevg authored
Reverts 46e36bbffa7cd8d9eb861a22755025ffe8751449 - SQL: fix assertion failure in parser
-
kevg authored
-
kevg authored
-
Aleksey Midenkov authored
-
kevg authored
-
kevg authored
-