- 09 Aug, 2018 1 commit
-
-
Alexander Barkov authored
- Adding a helper class Sec6 to store (neg,seconds,microseconds) - Adding a helper class VSec6 (Sec6 with a flag for "IS NULL") - Wrapping related functions as methods of Sec6; * number_to_datetime() * number_to_time() * my_decimal2seconds() * Item::get_seconds() * A big piece of code in Item_func_sec_to_time::get_date() - Using the new classes in places where second-to-temporal conversion takes place: * Field_timestamp::store(double) * Field_timestamp::store(longlong) * Field_timestamp_with_dec::store_decimal(my_decimal) * Field_temporal_with_date::store(double) * Field_temporal_with_date::store(longlong) * Field_time::store(double) * Field_time::store(longlong) * Field_time::store_decimal(my_decimal) * Field_temporal_with_date::store_decimal(my_decimal) * get_interval_value() * Item_func_sec_to_time::get_date() * Item_func_from_unixtime::get_date() * Item_func_maketime::get_date() This change simplifies these methods and functions a lot. - Warnings are now sent at VSec6 initialization time, when the source data is available in its original data type representation. If Sec6::to_time() or Sec6::to_datetime() truncate data again during conversion to MYSQL_TIME, they send warnings, but only if no warnings were sent during VSec6 initialization. This helps prevents double warnings. The call for val_str() in Item_func_sec_to_time::get_date() is not needed any more, so it's removed. This change actually fixes the problem. As a good effect, FROM_UNIXTIME() and MAKETIME() now also send warnings in case if the seconds arguments is out of range. Previously these functions returned NULL silently. - Splitting the code in the global function make_truncated_value_warning() into a number of methods THD::raise_warning_xxxx(). This was needed to reuse the logic that chooses between: * ER_TRUNCATED_WRONG_VALUE * ER_WRONG_VALUE * ER_TRUNCATED_WRONG_VALUE_FOR_FIELD for non-temporal data types (Sec6). - Removing: * Item::get_seconds() * number_to_time_with_warn() as this code now resides inside methods of Sec6. - Cleanup (changes that are not directly related to the fix): * Removing calls for field_name_or_null() and passing NULL instead in Item_func_hybrid_field_type::get_date_from_{int|real}_op, because Item_func_hybrid_field_type::field_name_or_null() always returns NULL * Replacing a number of calls for make_truncated_value_warning() to calls for THD::raise_warning_xxx(). In these places we know that the execution went through a certain branch of make_truncated_value_warning(), (e.g. the exact error code is known, or field name is always NULL, or field name is always not-NULL). So calls for the entire make_truncated_value_warning() after splitting are not necessary.
-
- 07 Aug, 2018 5 commits
-
-
Otto Kekäläinen authored
If something was built using a build dependency, it will automatically be a install dependency via ${shlibs:Depends}, so no need to define it manually. This also fixes a bug related to a over autobake-deb.sh mangling the control file architecture field on Trusty and Jessie.
-
Monty authored
-
Alexander Barkov authored
Changing data types for: - seconds from longlong to ulonglong - microseconds from long to ulong in: - parameters of calc_time_diff() - parameters of calc_time_from_sec() - Members of Sec6_add This will help to reuse the code easier: all other functions use ulonglong+long for seconds/microsecond, e.g.: - number_to_time() - number_to_datetime() - number_to_datetime_with_warn() - Field_temporal_with_date::store_decimal() - my_decimal2seconds() - Item::get_seconds()
-
Monty authored
-
Alexander Barkov authored
Adding classes VDec and VDec2_lazy, according to the task description. This patch removes around 250 duplicate code lines.
-
- 05 Aug, 2018 6 commits
-
-
Otto Kekäläinen authored
This also better matches the package order in downstream, so it makes it easier to compare upstream and downstream. Also wrap-and-sort.
-
Otto Kekäläinen authored
After this there will be no need to maintain line numbers, as the extent of the sed deletion will automatically be until next empty line.
-
Otto Kekäläinen authored
-
Otto Kekäläinen authored
-
Otto Kekäläinen authored
- Update package names that had -10.3 to -10.4 - Update conflicts/breaks/replaces of to include now also 10.3, just like 10.3 had the same relationship to 10.2 - Remove some old (<< ${source:Version}) not needed anymore as we are not moving files around inside the 10.4 releases (at least yet). - Ensure all plugins depend on server or client binaries from the same release so that they for sure are binary API compatible.
-
Otto Kekäläinen authored
-
- 04 Aug, 2018 1 commit
-
-
Igor Babaev authored
Due to an obvious bug in st_select_lex_unit::reset_distinct() a union without duplicates of more than 2 selects could return a result set containing duplicate rows if this union was enclosed in ().
-
- 03 Aug, 2018 1 commit
-
-
Alexander Barkov authored
-
- 02 Aug, 2018 3 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Rasmus Johansson authored
-
- 01 Aug, 2018 2 commits
-
-
Alexander Barkov authored
-
Galina Shalygina authored
The bug appeares because of the lamely saved list of multiple equalities. To fix it and_new_conditions_to_optimized_cond() was changed.
-
- 31 Jul, 2018 2 commits
-
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 30 Jul, 2018 1 commit
-
-
Alexander Barkov authored
- Implementing the task according to the MDEV description. - Adding a helper class Sec6_add to share the code in type-specific branches in Item_func_add_time::get_date().
-
- 29 Jul, 2018 1 commit
-
-
Galina Shalygina authored
The problem appears because of the pushdown of a non-pushable condition 'cond' into the materialized derived table/view. To prevent pushdown a map of tables that are used in 'cond' should be updated. This call is missing because of the MDEV-12387 changes. The call is added in the setup_jtbm_semi_joins() method.
-
- 27 Jul, 2018 1 commit
-
-
Galina Shalygina authored
failed The bug appeared as in MDEV-12387 setup_jtbm_semi_joins() procedure had been devided into two functions, one called before optimization of WHERE clause and another after this optimization. When the second function was called for a degenerated jtbm semi join equalities connecting the subselect and the parent select were created but invocation of fix_fields() for these equalities was missing.
-
- 25 Jul, 2018 2 commits
-
-
Alexander Barkov authored
Adding new methods: - virtual void Type_handler::Column_definition_reuse_fix_attributes() according to the MDEV description - virtual uint32 Field::character_octet_length() To simplify handling of Column_definition::length for TEXT and VARCHAR columns (with and without compression).
-
Alexander Barkov authored
-
- 24 Jul, 2018 5 commits
-
-
Jacob Mathew authored
The problem occurred because the Spider node was incorrectly handling timestamp values sent to and received from the data nodes. The problem has been corrected as follows: - Added logic to set and maintain the UTC time zone on the data nodes. To prevent timestamp ambiguity, it is necessary for the data nodes to use a time zone such as UTC which does not have daylight savings time. - Removed the spider_sync_time_zone configuration variable, which did not solve the problem and which interfered with the solution. - Added logic to convert to the UTC time zone all timestamp values sent to and received from the data nodes. This is done for both unique and non-unique timestamp columns. It is done for WHERE clauses, applying to SELECT, UPDATE and DELETE statements, and for UPDATE columns. - Disabled Spider's use of direct update when any of the columns to update is a timestamp column. This is necessary to prevent false duplicate key value errors. - Added a new test spider.timestamp to thoroughly test Spider's handling of timestamp values. Author: Jacob Mathew. Reviewer: Kentoku Shiba. Merged: Commit 97cc9d34 on branch bb-10.3-MDEV-16246
-
Alexander Barkov authored
-
Alexander Barkov authored
-
Alexander Barkov authored
Field_varstring::sql_type() did not calculate character length correctly. Using char_length() instead of the bad code.
-
Alexander Barkov authored
-
- 23 Jul, 2018 9 commits
-
-
Jacob Mathew authored
The problem occurs on Ubuntu where a Spider package is installed on the system separately from the MariaDB package. MariaDB and Spider upgrades leave the Spider plugin improperly installed. Spider is present in the mysql.plugin table but is not present in information_schema. The problem has been corrected in Spider's installation script. Logic has been added to check for Spider entries in both information_schema and mysql.plugin. If Spider is present in mysql.plugin but is not present in information_schema, then Spider is first removed from mysql.plugin. The subsequent plugin install of Spider will insert entries in both mysql.plugin and information_schema. Author: Jacob Mathew. Reviewer: Kentoku Shiba. Cherry-Picked: Commit 0897d81 on branch bb-10.3-MDEV-15786
-
Jacob Mathew authored
The problem occurs on Ubuntu where a Spider package is installed on the system separately from the MariaDB package. MariaDB and Spider upgrades leave the Spider plugin improperly installed. Spider is present in the mysql.plugin table but is not present in information_schema. The problem has been corrected in Spider's installation script. Logic has been added to check for Spider entries in both information_schema and mysql.plugin. If Spider is present in mysql.plugin but is not present in information_schema, then Spider is first removed from mysql.plugin. The subsequent plugin install of Spider will insert entries in both mysql.plugin and information_schema. Author: Jacob Mathew. Reviewer: Kentoku Shiba. Cherry-Picked: Commit 0897d81 on branch bb-10.3-MDEV-15786
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This helped fix MDEV-16779.
-
Marko Mäkelä authored
Declare all fields of purge_vcol_info_t private, and add accessor functions.
-
Marko Mäkelä authored
During a table-rebuilding operation, the function table_name_parse() can encounter a table name that starts with #sql. Here is an example of a failure: CURRENT_TEST: gcol.innodb_virtual_basic mysqltest: At line 1204: query 'alter table t drop column d ' failed: 2013: Lost connection to MySQL server during query Let us just remove these bogus debug assertions. If the final renaming phase during ALTER TABLE never fails, it should not do any harm to skip the purge. If it does fail, then we might end up 'leaking' some delete-marked records in the indexes on virtual columns of the original table, and these garbage records would keep consuming space until the indexes are dropped or the table is successfully rebuilt.
-
Thirunarayanan Balathandayuthapani authored
This is a regression caused by the fix of MDEV-15855. purge_vcol_info_t::set_used(): Add a missing condition. row_purge_poss_sec(): Invoke set_used() in order to have !is_first_fetch() when retrying.
-
Marko Mäkelä authored
This should affect at least rec_printer() output.
-
Marko Mäkelä authored
Replace pairs of rw_lock_own() calls with calls to rw_lock_own_flagged(). These calls are only present in debug builds.
-